Ошибка при попытке загрузить файл - PullRequest
0 голосов
/ 10 марта 2011

Я нашел этот исходный код в сети и немного его изменил. Но я получаю сообщение об ошибке: java.io.FileNotFoundException /data/datafile.zip. Что я должен сделать, чтобы запустить его? Нужно ли сначала создавать файл?

Спасибо, Сигурд

private Thread checkUpdate = new Thread() {
    public void run() {
        try {
            long startTime = System.currentTimeMillis();
            Log.d("Zip Download", "Start download");
            File file = new File(Environment.getDataDirectory(), "datafil.zip");
            Log.d("Zip Download", file.getAbsolutePath());

            URL updateURL = new URL("http://dummy.no/bilder/bilder/XML_Item_Expo_01.zip");
            URLConnection conn = updateURL.openConnection();
            InputStream is = conn.getInputStream();
            BufferedInputStream bis = new BufferedInputStream(is);
            ByteArrayBuffer baf = new ByteArrayBuffer(50);

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

            /* Convert the Bytes read to a String. */
            FileOutputStream fos = new FileOutputStream(file);
            fos.write(baf.toByteArray());
            fos.close();
            Log.d("Zip Download", "download ready in" + ((System.currentTimeMillis() - startTime) / 1000) + " sec");
        } catch (Exception e) {
            Log.d("Zip Download", "Error: " + e);
        }
    }
};

Ответы [ 2 ]

1 голос
/ 10 марта 2011

Environment.getDataDirectory() не возвращает путь, куда вы можете поместить файлы.Вместо этого следует использовать один из этих методов:

  • Environment.getExternalStorageDirectory() дает вам путь к внешнему хранилищу (SD-карте).
  • getFilesDir() из действия или другого контекста.Дает путь к внутреннему файловому хранилищу приложения

Вы также можете вызвать openFileOutput() со строковым именем файла (без пути, только файл), который откроет FileOutputStream и создаст файл в одном.выстрел для вашего использования.

Надеюсь, что поможет!

1 голос
/ 10 марта 2011

Похоже, ошибка разрешения. Возможно, вы пишете не в том месте. Проверьте ответ по ссылке ниже,

Каталог данных не имеет разрешения на чтение / запись в Android

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...