FileNotFoundException + Запись файла на SD-карту

Я пытаюсь загрузить файл из сети и записать его на SD-карту. У меня есть разрешение WRITE_EXTERNAL_STORAGE. Код здесь не работает:

OutputStream output = new FileOutputStream(filePath); 09-15 19:40:31.630: WARN/System.err(7933): java.io.FileNotFoundException: /sdcard/artoo/Customerv08.apk 09-15 19:40:31.630: WARN/System.err(7933): at org.apache.harmony.luni.platform.OSFileSystem.open(OSFileSystem.java:231) 09-15 19:40:31.630: WARN/System.err(7933): at java.io.FileOutputStream.<init>(FileOutputStream.java:96) 09-15 19:40:31.630: WARN/System.err(7933): at java.io.FileOutputStream.<init>(FileOutputStream.java:169) 09-15 19:40:31.630: WARN/System.err(7933): at java.io.FileOutputStream.<init>(FileOutputStream.java:147) 09-15 19:40:31.640: WARN/System.err(7933): at com.artoo.settings.InstallerActivity$ProgressDialogAsyncTask.doInBackground(InstallerActivity.java:148) 09-15 19:40:31.640: WARN/System.err(7933): at com.artoo.settings.InstallerActivity$ProgressDialogAsyncTask.doInBackground(InstallerActivity.java:1) 09-15 19:40:31.640: WARN/System.err(7933): at android.os.AsyncTask$2.call(AsyncTask.java:185) 09-15 19:40:31.640: WARN/System.err(7933): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:256) 09-15 19:40:31.640: WARN/System.err(7933): at java.util.concurrent.FutureTask.run(FutureTask.java:122) 09-15 19:40:31.640: WARN/System.err(7933): at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:648) 09-15 19:40:31.640: WARN/System.err(7933): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:673) 09-15 19:40:31.651: WARN/System.err(7933): at java.lang.Thread.run(Thread.java:1060) 09-15 19:40:31.670: WARN/InputManagerService(53): Window already focused, ignoring focus gain of: com.android.internal.view.IInputMethodClient$Stub$Proxy@43868480 

Я пытаюсь написать файл, и он не существует ранее. Есть идеи, как это сделать?

Вы получаете эту ошибку, потому что указанный файл не может быть открыт или не существует. Это просто.

Я всегда создаю файл раньше и использую буферный поток для его записи, например:

 File file = new File(path, name); file.createNewFile(); BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream(file), BUFFER); 

Проверьте свое разрешение в файле манифеста, парень,

Предоставить вашему приложению разрешение WRITE_EXTERNAL_STORAGE

Intereting Posts
Ошибка эмулятора Android: std :: bad_alloc Отображение значения EditTextPreference в сводке Какова логика проектирования для фрагментов как статических внутренних классов и автономных публичных классов? Android: MediaPlayer безразличный или бесшовный просмотр видео Height_content height, но ограничивается половиной родительского Создание таблицы / сетки с замороженным столбцом и замороженными заголовками Где вы восстанавливаете покупки в приложениях In-App? Как взять первый элемент arrayList и просмотреть в текстовом виде Как форматировать значения внутри MPAndroidChart? Разница между доступом к фрагментам с помощью тега или идентификатора Вызов собственных API-интерфейсов android из функций javascript встроенного WebView SQLite "INSERT OR REPLACE INTO" не работает Использование SimpleXML с Android и Gradle Изменение высоты панели действий на Android JellyBean Gradle assembleRelease использует неправильный ключ / сертификат