我有主要活動,我創建一個名爲fileSaver的新對象。我正在嘗試將對象「數據」存檔。 FileSave有一個創建文件的方法serialize()。如何從活動之外將文件寫入Android設備?
private String FILE_NAME = "file.dat";
FileSaver fileSaver = new FileSaver();
Data data = new Data();
data.setEmail("[email protected]");
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..are你得到任何錯誤消息?你怎麼打算做外部活動? –
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(只讀文件系統) – Cristiano
序列化對象在活動內部創建,所以我認爲它應該工作不知何故。 – Cristiano