我的java应用程序堆中有一个占用大约15GB的对象,我需要在JVM重启之间保持持久性。我使用ObjectOutputStream的writeObject方法每隔一段时间将它写入磁盘上的文件。由于写入过程非常长(几分钟)并导致一些GC问题,我想以某种方式拆分对象以将每个部分分别保存到不同的文件而不是单个动作到单个文件。 有没有办法做到这一点(当然,我需要时从文件中检索回来)?
FileOutputStream fos = null;
GZIPOutputStream gos = null;
ObjectOutputStream oos = null;
try {
fos = new FileOutputStream("some_path");
gos = new GZIPOutputStream(fos);
oos = new ObjectOutputStream(gos);
oos.writeObject(myLargeObject);
oos.flush();
gos.close();
fos.close();
} catch (Exception e) {
e.printStackTrace();
}