【发布时间】:2014-02-20 15:45:10
【问题描述】:
问题:将大文件附加到 String 或 StringBuilder 导致 JVM OOME
建议的解决方案:受org.apache.axis.attachments.ManagedMemoryDataSource 类的启发,我编写了一个将 StringBuilder 缓冲区保持在某个最大值的类。当达到该最大值时,该类将 StringBuilder 的内容刷新到磁盘,并且所有后续追加都将完成到磁盘。
是否有任何自定义类可以做到这一点?
我走对了吗?
【问题讨论】:
-
你有没有尝试过?
-
是的,实际上我正在实施自定义解决方案。目前它没有实现任何接口。首先我想解决问题,然后我会决定是否符合这些接口中的任何一个是否会给我带来更多好处(现在我认为是,但我不知道我是否有时间)
-
使用 File.separator 而不是硬编码“/”,否则它在 Unix 中不起作用。
-
好建议 Lluis。谢谢。现在它更像是学术性而非实用性,但我肯定会在生产版本中使用 File.separator。
标签: java string memory-management