2010-07-08 76 views
0

當執行下載功能它工作,但在文件保存到SD卡時,我得到以下內容在Android中寫入SDCARD問題?

在BufferedInputStream構造函數中使用的默認緩衝區大小。如果需要8k緩衝區,那麼最好是明確的。

此外IO異常occure

W(14495:0x389f)java.io.FileNotFoundException:/ SD卡 W(14495:0x389f)在org.apache.harmony.luni.platform.OSFileSystem.open(OSFileSystem。 (FileOutputStream.java:97) W(14495:0x389f)位於java.io.FileOutputStream。(FileOutputStream.java:168) W(14495:0x389f)位於java.io.FileOutputStream中(14495:0x389f) :0x389f)(FileOutputStream.java:147)

+1

我喜歡這個問題是如何首先將警告視爲最重要的,然後將異常作爲事後處理。 – 2010-07-08 21:24:43

+0

我看到你應該評論如果你可以幫忙或建議 – 2010-07-08 21:26:58

回答

2

首先確保你通過調用

得到File對象
File dir = Environment.getExternalStorageDirectory(); 

此外,如果您的應用程序使用1.6+,您將需要WRITE_EXTERNAL_STORAGE權限。如果這沒有幫助,請發佈代碼。

+0

我已經使用BufferedInput流 BufferedInputStream bis = new BufferedInputStream(objectComplete.getDataInputStream()); \t \t \t \t \t \t 的BufferedOutputStream BOS =新 的BufferedOutputStream(新FileOutputStream中( 「/ SD卡」)); int i; ((i = bis.read())!= -1)bos.write(i); System.out.println(「Writing file」); } System.out.println(「Greeting:」); 我還設置了權限wrdg在SD卡上 <使用權限android:name =「android.permission.WRITE_EXTERNAL_STORAGE」/> – 2010-07-08 21:37:22

+2

@Ahmed Salem:請閱讀您給出的答案。它不符合你的代碼。你的代碼硬連線'「/ sdcard」'。這不是所有Android設備上的有效路徑。你會注意到BrennaSoft的回答並不是硬連線「/ sdcard」,而是使用'Environment.getExternalStorageDirectory()'。修改你的代碼使用'Environment.getExternalStorageDirectory()',你可能會有更好的運氣。 – CommonsWare 2010-07-08 21:58:47

+0

@CommonsWaree 我有更改代碼,仍然有例外 java.io.FileNotFoundException:/ sdcard – 2010-07-08 22:14:26