0

Android アプリケーションで Web URL から画像を保存しようとしていますが、実行すると、ログの猫が「読み取り専用」という例外をスローします。何が起こっているのかわかりません。

ここに私のダウンローダークラスがあります:

  public class ImageDownload {

public static void downloader(String imageURL, String fileName) { 
        try {
                URL url = new URL("http://www.exampleurl.com/" + imageURL); 
                File file = new File(fileName);


                URLConnection con = url.openConnection();

                InputStream is = con.getInputStream();
                BufferedInputStream bis = new BufferedInputStream(is);

                ByteArrayBuffer baf = new ByteArrayBuffer(50);
                int current = 0;
                while ((current = bis.read()) != -1) {
                        baf.append((byte) current);
                }

                FileOutputStream fos = new FileOutputStream(file);
                fos.write(baf.toByteArray());
                fos.close();

        } catch (IOException e) {
                Log.d("Downloader", "Error: " + e);
        }

}
}

これを実行すると、logcat から次のようになります。

DEBUG/Downloader(22112): Error: java.io.FileNotFoundException: /example.gif (Read-only file system)

どんな助けでも素晴らしいでしょう。ありがとうございました。

4

2 に答える 2

5

new File(fileName);呼び出しのデフォルトのディレクトリは書き込み可能ではありません。現在のコンテキストのファイル書き込みディレクトリへのパスを取得するには、getFilesDir() を使用します。したがってnew File(getFilesDir()+fileName);、「現在の」ディレクトリでファイルを開くという通常の Java の動作と同じです。

于 2011-03-22T04:17:13.957 に答える
3

/sdcard/example.gifに保存してみてください

于 2011-03-15T17:29:09.597 に答える