0
我试图在dat文件里面存储一个类型的数组列表,这样数据在每次关闭程序时都不会丢失。我之前从未做过任何有关序列化的内容,从查看本网站上的其他问题,我认为这正是我想要的。任何帮助或见解都广受赞赏!我可以序列化一个数组列表,以便我可以将其存储在.dat文件中吗?
我试图在dat文件里面存储一个类型的数组列表,这样数据在每次关闭程序时都不会丢失。我之前从未做过任何有关序列化的内容,从查看本网站上的其他问题,我认为这正是我想要的。任何帮助或见解都广受赞赏!我可以序列化一个数组列表,以便我可以将其存储在.dat文件中吗?
ArrayList implements Serializable,所以你可以序列化它。但请记住,ArrayList只是一个项目集合,因此请确保所有项目都是可序列化的。这里是一个例子
import java.util.ArrayList;
import java.io.*;
public class ListSerExample {
public static void main(String[] args) {
ArrayList<String> lst = new ArrayList<>();
lst.add("a");
lst.add("b");
lst.add("c");
try (FileOutputStream fos = new FileOutputStream("foo.dat"); ObjectOutputStream oos = new ObjectOutputStream(fos);) {
oos.writeObject(lst);
oos.close();
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
ArrayList<String> deserialized= new ArrayList<>();
try (FileInputStream fis = new FileInputStream("foo.dat");
ObjectInputStream ois = new ObjectInputStream(fis);){
deserialized = (ArrayList) ois.readObject();
ois.close();
fis.close();
System.out.println("deserialized = " + deserialized);
} catch (IOException | ClassNotFoundException e) {
e.printStackTrace();
}
}
}
你放在'ArrayList'中的所有对象也必须是可序列化的。 – markspace 2014-12-03 19:59:13
您是否阅读过文档? – SLaks 2014-12-03 19:59:20