如何从活动外部将文件写入Android设备?

时间:2012-12-01 18:03:40

标签: android serialization android-activity android-file data-access

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

谢谢。

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

您可以将文件保存在SD卡中。

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

//此处filename是您在String和Environment.getExternalStorageDirectory()中的输入文件名,为您提供SDCard目录。

另外,请确保在Android清单文件中添加 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>