2012-03-26 45 views
3

這是我創建文件的代碼。如何在Android中向文件寫入字節數組?

public void writeToFile(byte[] array) 
{ 
    try 
    { 
     String path = "/data/data/lalallalaa.txt"; 
     FileOutputStream stream = new FileOutputStream(path); 
     stream.write(array); 
    } catch (FileNotFoundException e1) 
    { 
     e1.printStackTrace(); 
    } 
} 

當我試圖僅通過調用路徑String path = "/data/data/lalallalaa.txt";

我得到這個logcat的錯誤信息到我的文件發送到我的服務器:

03-26 18:59:37.205: W/System.err(325): java.io.FileNotFoundException: /data/data/lalallalaa.txt 

我不明白爲什麼它」 t找到一個「被假定」創建的文件。

+2

不要忘記之後關閉流 – 2012-03-26 19:08:57

回答

7

確定該文件已經創建好了嗎?

嘗試添加此:

File file = new File(path); 
if (!file.exists()) { 
    file.createNewFile(); 
} 
+0

是的,這是正確的。我實際上並沒有創建一個新文件。不知道這種方法,並不知道這是必要的。謝謝 – EGHDK 2012-03-26 20:48:28

0

如果任一文件不存在或該異常被拋出,如果你正在嘗試寫入到只讀文件。也請嘗試使用完整路徑名稱,並查看是否發生了相同的異常(以檢查是否給出了正確的相對路徑)。

4

/data/data /是Android中的特權目錄。應用程序無法寫入此目錄或從中讀取。

相反,您應該使用context.getFilesDir()來查找要使用的有效文件名。

+0

感謝您的信息。 – EGHDK 2012-03-26 20:48:42

2

我想你最好加FileOutputStream中的關閉功能清晰的代碼

它的工作對我來說十分

try { 
    if (!File.exists()) { 
     File.createNewFile(); 
    } 
    FileOutputStream fos = new FileOutputStream(File); 
    fos.write(bytes); 
    fos.close(); 
} catch (Exception e) { 
    Log.e(TAG, e.getMessage()); 
}