现在我试图使用这个
FileOutputStream fos = getContext().openFileOutput("CalEvents", Context.MODE_PRIVATE);
ObjectOutputStream oos = new ObjectOutputStream(fos);
oos.writeObject(returnlist);
oos.close();
为了将“returnlist”保存为文件“CalEvents”,这是一个ArrayList 现在我的问题是,这是正确的方法吗? 以及如何找回列表?
提前致谢
答案 0 :(得分:6)
这是你想要做的吗?
FileInputStream fis;
try {
fis = openFileInput("CalEvents");
ObjectInputStream ois = new ObjectInputStream(fis);
ArrayList<Object> returnlist = (ArrayList<Object>) ois.readObject();
ois.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
编辑:可以简化:
FileInputStream fis;
try {
fis = openFileInput("CalEvents");
ObjectInputStream ois = new ObjectInputStream(fis);
ArrayList<Object> returnlist = (ArrayList<Object>) ois.readObject();
ois.close();
} catch (Exception e) {
e.printStackTrace();
}
假设您所在的班级Context
(如Activity
)。如果没有,那么您必须在扩展openFileInput()
的对象上调用Context
方法。
答案 1 :(得分:1)
使用此方法将Arraylist写入文件
public static void write(Context context, Object nameOfClass) {
File directory = new File(context.getFilesDir().getAbsolutePath()
+ File.separator + "serlization");
if (!directory.exists()) {
directory.mkdirs();
}
String filename = "MessgeScreenList.srl";
ObjectOutput out = null;
try {
out = new ObjectOutputStream(new FileOutputStream(directory
+ File.separator + filename));
out.writeObject(nameOfClass);
out.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}