使用 ObjectInputStream 加载大文件时,所有读取的对象都由流缓冲以进行对象图解析。
这会导致巨大的内存开销,这在我的情况下是不需要的(所有读取的对象都是相互依赖的)。
是否有等效于重置此缓冲区的 ObjectOutputStream 的 reset() 方法?
代码示例:
try (FileInputStream fileInputStream = new FileInputStream(filename);
BufferedInputStream bufferedInputStream = new BufferedInputStream(fileInputStream);
ObjectInputStream objectInputStream = new ObjectInputStream(bufferedInputStream)) {
while (object = objectInputStream.readObject()) {
System.Out.println(object.toString());
}
}
- 该类实际上有一个重置方法,但它做了完全不同的事情。
- 请参阅导致内存膨胀的 Java API