Проблем с писане на SDCARD в Android?

Когато прилагам функцията за изтегляне, тя работи, но по време на запис на файл в sdcard получавам следното

Размер на буфера по подразбиране, използван в конструктора BufferedInputStream. Би било по-добре да бъде изрично, ако се изисква 8k буфер.

Възниква също IO изключение

W(14495:0x389f) java.io.FileNotFoundException: /sdcard W(14495:0x389f) в org.apache.harmony.luni.platform.OSFileSystem.open(OSFileSystem.java:244) W(14495:0x389f) в java. io.FileOutputStream.(FileOutputStream.java:97) W(14495:0x389f) в java.io.FileOutputStream.(FileOutputStream.java:168) W(14495:0x389f) в java.io.FileOutputStream.(FileOutputStream.java:147 )


person Ahmed Salem    schedule 08.07.2010    source източник
comment
Харесва ми как този въпрос поставя предупреждението на първо място, сякаш е най-важно, и след това се обръща към изключението като закъснение.   -  person Anon.    schedule 09.07.2010
comment
Виждам, че трябва да коментирате, ако можете да помогнете или посъветвате   -  person Ahmed Salem    schedule 09.07.2010


Отговори (1)


Първо се уверете, че получавате обекта File чрез извикване

File dir = Environment.getExternalStorageDirectory();

Освен това, ако приложението ви използва 1.6+, ще ви трябва WRITE_EXTERNAL_STORAGE разрешение. Ако това не помогне, публикувайте кода.

person Robby Pond    schedule 08.07.2010
comment
Използвам BufferedInput поток BufferedInputStream bis = нов BufferedInputStream(objectComplete.getDataInputStream()); BufferedOutputStream bos = нов BufferedOutputStream(нов FileOutputStream(/sdcard)); int i; докато ((i = bis.read()) != -1) { bos.write(i); System.out.println(Файл за запис); } System.out.println(Поздрав:); също така съм задал разрешение за писане на sdcard ‹uses-permission android:name=android.permission.WRITE_EXTERNAL_STORAGE /› - person Ahmed Salem; 09.07.2010
comment
@Ahmed Salem: Моля, прочетете отговора, който ви беше даден. Не съвпада с вашия код. Вашият код свързва "/sdcard". Това не е валиден път за всички устройства с Android. Ще забележите, че отговорът на BrennaSoft не свързва "/sdcard", а по-скоро използва Environment.getExternalStorageDirectory(). Променете кода си, за да използвате Environment.getExternalStorageDirectory(), и може да имате повече късмет. - person CommonsWare; 09.07.2010
comment
@CommonsWaree имам код за промяна и все още имам изключение java.io.FileNotFoundException: /sdcard - person Ahmed Salem; 09.07.2010