Ошибка только для чтения при сохранении изображения с URL в Android - PullRequest
0 голосов
/ 15 марта 2011

Я пытаюсь сохранить изображение с веб-URL в приложении для Android, однако, когда я запускаю его, журнал cat выдает исключение, сообщающее, что оно «только для чтения».Я не знаю, что происходит.

Вот мой класс загрузчика:

  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)

Любая помощь будет отличной.Спасибо.

Ответы [ 2 ]

5 голосов
/ 22 марта 2011

Каталог, по умолчанию для вызова new File(fileName);, недоступен для записи.Чтобы получить путь к каталогу записи файла для текущего контекста, вы используете getFilesDir ().Таким образом, new File(getFilesDir()+fileName); соответствует обычному поведению Java при открытии файла в «текущей» директории.

3 голосов
/ 15 марта 2011

попробуйте сохранить в /sdcard/example.gif

...