0

我正在研究我的 2 级缓存实现的第二级。我正在考虑使用标准 Java 序列化机制 (Serializable) 的序列化对象选项,因为此功能包含在 JDK 中。关于输入对象,我所知道的只是它们将实现 Serializable 接口。据我所知,Java Input/OutputObject 流支持多个对象的序列化和反序列化,例如:

           ObjectOutputStream oout = new ObjectOutputStream(
                     new FileOutputStream("output.bin"));

           oout.writeObject(o1);
           oout.writeObject(o2);
           oout.writeObject(o3);
           oout.flush();
           oout.close();

           ObjectInputStream oin = new ObjectInputStream(
                     new FileInputStream("output.bin"));

           Object ob1 = oin.readObject();
           Object ob2 = oin.readObject();
           Object ob3 = oin.readObject();

但是在这里我只有一种可能的读取顺序,并且我无法从/向二进制文件“output.bin”添加/删除/更新随机对象。我需要这个,因为我对二级缓存的想法是使用在 hashmap/hashtable 中实现的相同机制,因此存储桶将是目录,链将是文件。

所以我正在寻找如何实现这种二进制序列化的正确方法,当我能够在文件中存储多个对象并同时能够从我的二进制文件中添加/删除随机对象时。你能告诉我吗?

谢谢。

4

1 回答 1

0

您是否允许写入磁盘上的多个文件?使用 Map 获取/放置具有序列化数据的特定文件。File.createTempFile() 可以获得每个文件的唯一名称。

于 2013-08-15T13:37:06.573 回答