2

我的主要活动是创建一个名为 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();
    }
}
}

谢谢你。

4

2 回答 2

1

您必须将上下文传递给外部 java 类并使用上下文,使用此 openFileOutput() 方法在 android 设备内存中创建和写入文件

于 2012-12-01T18:12:31.440 回答
0

您可以将文件保存在 SDCARD 中。

ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream(Environment.getExternalStorageDirectory()+File.separator+filename));

//这里文件名是您在字符串中的输入文件名,Environment.getExternalStorageDirectory() 为您提供 SDCard 目录。

还要确保<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>在 Android Manifest 文件中添加

于 2012-12-02T04:05:08.223 回答