是一种向缓冲区写入内容的方法,但是一旦缓冲区变大,就开始写入文件了吗?
我希望这整个过程是自动的。基本上,我想写一个缓冲区,并让库确保我没有内存不足。
我从不想阻止写作过程。如果缓冲区太大,库应该将其中一些写入磁盘。
有没有人知道这样的图书馆?
GRAE
重点是我只想在必要时写入磁盘。如果缓冲区大小允许,数据应保存在内存中。
答案 0 :(得分:4)
Heritix项目包含一个名为RecordingOutputStream的类。来自javadocs:
RecordingOutputStream使用内存缓冲区和后备磁盘 file允许它记录仅受限制的任意长度的流 可用磁盘空间。
只要记录的流小于内存缓冲区, 不会发生磁盘访问。
您可以查看source code以了解如何实现这一目标。
答案 1 :(得分:2)
EHCache正是这样做的。 您需要做的就是配置它,以便当它拥有一定的对象限制时,它们将自动刷新到磁盘存储
答案 2 :(得分:0)
@Grae:你的app服务器是什么......可能是你的app server提供了这样的功能.. 例如如果您的应用服务器是websphere应用服务器,那么您可以使用WAS提供的dyna缓存服务并使用它的“磁盘卸载”功能。更多细节:WAS cache