Java 如何在Android中向文件写入字节数组?
这是我创建文件的代码Java 如何在Android中向文件写入字节数组?,java,android,file,bytearray,logcat,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 e
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/lallaa.txt”将文件发送到服务器时代码>
我收到此logcat错误消息:
03-26 18:59:37.205: W/System.err(325): java.io.FileNotFoundException: /data/data/lalallalaa.txt
我不明白为什么它找不到“假定”已创建的文件。您确定该文件已创建吗
尝试添加以下内容:
File file = new File(path);
if (!file.exists()) {
file.createNewFile();
}
如果文件不存在或试图写入只读文件,将引发此异常。还可以尝试使用完整路径名,并查看是否出现相同的异常(以检查您是否提供了正确的相对路径)。/data/data/是Android中的特权目录。应用程序无法写入或读取此目录
相反,您应该使用context.getFilesDir()
来查找要使用的有效文件名。我认为您最好添加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());
}
别忘了在事后关闭小溪,这是正确的。我实际上并没有创建一个新文件。我不知道那个方法,也不知道它是必要的。谢谢