java.io.IOException:只读文件系统

时间:2012-02-21 05:47:07

标签: java android

File mediaDir = new File("media");
if (!mediaDir.exists()){
    mediaDir.createNewFile();
    mediaDir.mkdir();

}

File f = new File("/data/data/com.test.image/files/media/Voucher.jpg");
f.createNewFile();
FileOutputStream fos = new FileOutputStream(f);
fos.write(b);
fos.close();

尝试在手机内存中写入文件,但会引发错误: java.io.IOException:只读文件系统

4 个答案:

答案 0 :(得分:2)

猜测/数据/数据不是外部存储。您需要具有root权限才能写入/ data目录。请参阅Data directory has no read/write permission in Android

答案 1 :(得分:0)

使用 mediaDir.mkdirs(); 代替 mediaDir.mkdir(); ,您还必须 WRITE_EXTERNAL_STORAGE 权限

答案 2 :(得分:0)

您正在Android系统的根目录中创建没有应用程序的文件。

要创建特定于您的应用程序的目录,请使用getDir(String dirName, int mode)而不是new File("media")。通过仅调用,您可以创建媒体目录并使用它。

无需在上面的代码中执行此类操作。也不需要在清单中给予任何许可。

答案 3 :(得分:0)

您可以尝试以下类似方法在Activity上创建文件夹

this.getDir("folder_name", Context.MODE_PRIVATE);

source