如何在Android中的文件中写入字节数组?

时间:2012-03-26 19:06:26

标签: java android file bytearray logcat

这是我创建文件的代码。

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

我不明白为什么它找不到“据说”已创建的文件。

4 个答案:

答案 0 :(得分:10)

你确定文件已经创建了吗?

尝试添加此内容:

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

答案 1 :(得分:6)

我认为你最好添加FileOutputStream的close函数以获得清晰的代码

它非常适合我

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

答案 2 :(得分:5)

/ data / data /是Android中的特权目录。应用无法写入此目录或从中读取。

相反,您应该使用context.getFilesDir()来查找要使用的有效文件名。

答案 3 :(得分:0)

如果文件不存在或者您尝试写入只读文件,则抛出此异常。还可以尝试使用完整路径名并查看是否发生了相同的异常(检查是否给出了正确的相对路径)。