【发布时间】:2012-11-19 16:10:44
【问题描述】:
我的主要活动是创建一个名为 fileSaver 的新对象。我正在尝试将对象“数据”序列化到文件中。 FileSave 有一个方法 serialize() 可以创建文件。
private String FILE_NAME = "file.dat";
FileSaver fileSaver = new FileSaver();
Data data = new Data();
data.setEmail("aaa@bbb.com");
fileSaver.serialize((Object) data,FILE_NAME);
问题是我无法在活动之外创建文件。当我尝试相同的内部活动时,它会创建该文件。我正在尝试路径,但没有成功。我知道从活动创建文件时,它保存在 /data/data/my_package_name/files 但如何从外部活动类访问该文件?
类 FileSaver:
public class FileSaver {
public void serialize(Object objToSerialize,String fileName) {
try {
ObjectOutputStream out = new ObjectOutputStream(
new FileOutputStream(fileName));
out.writeObject(objToSerialize);
out.close();
System.out.println("Object : " + objToSerialize.getClass()
+ " serialized successfully");
} catch (Exception ex) {
System.out.println("Error Saving Object to File :"
+ ex.getMessage());
ex.printStackTrace();
}
}
}
谢谢。
【问题讨论】:
-
发布您的 logcat..您是否收到任何错误消息?您打算如何在活动之外进行操作??
-
Logcat:12-01 18:45:39.001:I/System.out(1621):将对象保存到文件时出错:/file.dat:打开失败:EROFS(只读文件系统) 12-01 18:45:39.029: W/System.err(1621): java.io.FileNotFoundException: /file.dat: 打开失败:EROFS(只读文件系统)
-
用于序列化的对象是在活动内部创建的,所以我认为它应该以某种方式工作。
标签: android serialization android-activity android-file data-access