【发布时间】:2013-03-18 12:04:04
【问题描述】:
当使用 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());
}
}
- 在类中实际上有一个 reset 方法,但它的作用完全不同。
- 见Java APIs which cause memory bloat
【问题讨论】:
-
你能告诉我们你的代码吗?
标签: java serialization