如何在磁盘上保存列表项而不是Java中的内存

use*_*889 5 java

我正在寻找与Java中的ArrayList相同的数据结构,它将项目保存在磁盘上而不是内存中.java有这样的数据结构吗?谢谢

我希望有一个动态结构,可以在内存中保存项目,当它的大小超过某个值时,将新项目保存在磁盘上,直到大小低于该值.

Niv*_*vas 12

您可以自己执行此操作:序列化ArrayList到磁盘.

确保列表的内容是可序列化的,即列表中的对象应该实现Serializable接口.

然后
写入文件:

ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(fileName));
oos.writeObject(list);
oos.flush();
oos.close();
Run Code Online (Sandbox Code Playgroud)

要从文件中读取:

ObjectInputStream ois = new ObjectInputStream(new FileInputStream(fileName));
List<YourClass> list = ois.readObject();
ois.close()
Run Code Online (Sandbox Code Playgroud)

  • 您需要自己实现这样的结构.一个围绕ArrayList的warpper,带有"add","remove"和"get"metnods的包装器,可以执行检查,并根据需要进行序列化和反序列化 (2认同)