【发布时间】:2011-03-12 06:19:19
【问题描述】:
我正在尝试将一个对象保存在一个文件中,但该文件没有出现在设备上,我也没有遇到异常。
public static void save(Context ctx) {
Log.i("App serialization", "Saving to settings.ser: " + ctx.getFileStreamPath("settings.ser"));
FileOutputStream fos = null;
ObjectOutputStream out = null;
try {
fos = ctx.openFileOutput("settings.ser", Context.MODE_PRIVATE);
out = new ObjectOutputStream(fos);
out.writeObject(ApplicationData.settings);
out.flush();
out.close();
//fos.close();
Log.i("App serialization", "Finished writing to settings.ser");
}
catch(IOException ex) {
ex.printStackTrace();
Log.e("App serialization", "Could not save to settings.ser");
}
}
如果我改用:
try {
fos = new FileOutputStream("/data/data/APP_PACKAGE/settings.ser");
out = new ObjectOutputStream(fos);
它可以工作,我可以看到文件已在设备上创建。
但这并不酷,也不是这样做的方法,因为目录结构将来可能会改变。
【问题讨论】:
-
我偷偷怀疑这是一个权限问题 - 所以它没有在 logcat 或任何东西中吐出任何错误?有什么警告吗?
-
logcat 中没有任何内容。想到了权限问题,卸载了重装了还是什么都没有。
标签: android serialization file