尝试序列化对象(将其保存到文件中),获取只读文件systrem的异常

时间:2018-05-26 16:58:33

标签: android

我正在尝试将对象保存到我的android代码中的文件中。当我尝试打开输出流FileOutputStream("test.obj");时,它会抛出一个说只读文件系统的异常。

try {
    FileOutputStream file = new FileOutputStream("test.obj"); // exception goes off here
    ObjectOutputStream out = new ObjectOutputStream(file);

    out.writeObject(mShareSecurity);

    out.close();
    file.close();
} catch(Exception e) {
    mesg=e.getMessage();
    ted++;
}

2 个答案:

答案 0 :(得分:0)

不可能与对象序列化有关。

  • 确保您有权为该应用编写WRTIE_EXTERNAL_STORAGE。
  • 检查路径并确保您要写入目标位置,使用File.getAbsolutePath()。

答案 1 :(得分:0)

  

它抛出一个说只读文件系统的异常。

这与权限有关,请尝试在清单文件和运行时权限中请求WRITE_EXTERNAL_STORAGE权限:

<manifest ...>
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    ...
</manifest>

保存文件的另一种方法可以通过以下方式保存到内部存储:

try {
    FileOutputStream outputStream = openFileOutput("test.obj", Context.MODE_PRIVATE);
    ObjectOutputStream out = new ObjectOutputStream(file);

    out.writeObject(mShareSecurity);

    out.close();
    outputStream.close();
} catch (Exception e) {
    e.printStackTrace();
    // TODO: don't forget to handle the exception!
}

请在Save file on device storage了解详情。