我正在处理我的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中实现的相同机制,因此桶将是目录,链将是文件。
所以我正在寻找如何实现这种二进制序列化的正确方法,当我能够在文件中存储多个对象时,同时将能够从我的二进制文件中添加/删除随机对象。你能告诉我一下吗?
感谢。
答案 0 :(得分:0)
您是否可以写入磁盘上的多个文件?使用Map获取/放置包含序列化数据的特定文件。 File.createTempFile()可以为每个文件获取一个唯一的名称。