如何将字节数组写入 Android 中的文件?
Posted
技术标签:
【中文标题】如何将字节数组写入 Android 中的文件?【英文标题】:How do I write a byte array to a file in Android? 【发布时间】:2012-04-10 07:29:33 【问题描述】:这是我创建文件的代码。
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
我不明白为什么它找不到“应该”已经创建的文件。
【问题讨论】:
之后别忘了关闭流 【参考方案1】:我认为你最好添加 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());
【讨论】:
【参考方案2】:你确定文件已经创建了吗?
尝试添加这个:
File file = new File(path);
if (!file.exists())
file.createNewFile();
【讨论】:
是的,这是正确的。我实际上并没有创建一个新文件。不知道那个方法,也不知道有必要。谢谢【参考方案3】:/data/data/ 是 android 中的特权目录。应用程序无法写入此目录或从中读取。
相反,您应该使用context.getFilesDir()
来查找要使用的有效文件名。
【讨论】:
【参考方案4】:如果文件不存在或您尝试写入只读文件,则会引发此异常。还可以尝试使用完整路径名,看看是否发生相同的异常(检查您是否提供了正确的相对路径)。
【讨论】:
以上是关于如何将字节数组写入 Android 中的文件?的主要内容,如果未能解决你的问题,请参考以下文章