我的主要活动是创建一个名为fileSaver的新对象。我正在尝试将对象"数据"sarial化为文件。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 中,但是如何从外部活动类访问该文件?
类文件保护程序:
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();
}
}
}
谢谢。
你必须将上下文传递给外部Java类并使用上下文,使用此openFileOutput()方法在Android设备内存中创建和写入文件
您可以改为将文件保存在 SDCARD 中。
ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream(Environment.getExternalStorageDirectory()+File.separator+filename));
//here 文件名是您在 String 中的输入文件名,Environment.getExternalStorageDirectory() 为您提供 SDCard 目录。
此外,请确保在 Android 清单文件中添加<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>