現在、メディアファイルを内部/外部ストレージ(プライマリストレージ)に書き込む方法を考えています。保存するファイルは、数MBから50MBの任意のサイズにすることができます。私は自分のDroid X 2.3.3 Razr 2.3.5で動作するロジックを持っていますが、私のGalaxy Nexusでは動作しません(リムーバブルストレージはありませんが、v4.0.2の16Gigカードが組み込まれています)。私は周りを見回し、v4.0で動作するコード/サンプルが見つかりませんでした。たぶん私は実際のSDカードを持っていないので、このすべての間違って近づいている?おそらくv4.0の新機能ですか?私はギャラクシーネクサス上で自分のアプリケーションを実行すると現在、私はこれを取得:をSystem.err(19520):java.io.FileNotFoundException:内部/外部ストレージにメディアファイルを書き込む
まず、それを変換しない
InputStream inputStream = urlConnection.getInputStream();
File PATH = Environment.getExternalStorageDirectory();
File FILE = new File(Environment.getExternalStorageDirectory()+ "/" + FILENAME);
ByteArrayOutputStream byteBuffer = new ByteArrayOutputStream();
// buffer int bufferSize = 1024; int bufferLength = 0; byte[] buffer = new byte[bufferSize];
while ((bufferLength = inputStream.read(buffer)) != -1) {
byteBuffer.write(buffer, 0, bufferLength);
}
byte[] temp = byteBuffer.toByteArray();
FileOutputStream fos = new FileOutputStream(FILE);
fos.write(temp);
fos.close();
PATHの値は/ mnt/sdcard 私は自分のディレクトリを作ってファイルを書きますか?私はそれが私がストレージの一番上の部分に書き込むことを望んでいないと思いますか? –
うーん、それは単なる質問だった。あなたがそうなら、 ファイルmyFile =新しいファイル(Environment.getExternalStorageDirectory()+ '/' + nameFile)は動作しませんか? –
いいえ、私の元の投稿を見ていると、私は現在作業中のコードを見ることができます。私はあなたが言ったことを追加し、まだ働いていない。同じ場所で同じ例外があります。私はログファイルへのパスを印刷し、右に見えます。 –