java - 是否有一个 Java 库可以根据数据的大小将数据缓存在内存或磁盘中?

标签 java caching jakarta-ee memory-management out-of-memory

是否有一种方法可以将内容写入缓冲区,但一旦缓冲区变大,就开始写入文件?

我希望整个过程是自动的。基本上,我想写入缓冲区,并让库确保我不会耗尽内存。

我从不想阻止写作过程。如果缓冲区太大,库应该将其中的一些写入磁盘。

有人知道这样的图书馆吗?

格雷

要点是我只想在必要时写入磁盘。如果缓冲区大小允许,数据应保存在内存中。

最佳答案

Heritix项目包括一个名为 RecordingOutputStream 的类.来自 javadocs:

The RecordingOutputStream uses an in-memory buffer and backing disk file to allow it to record streams of arbitrary length limited only by available disk space.

As long as the stream recorded is smaller than the in-memory buffer, no disk access will occur.

你可以看看source code了解这是如何实现的。

关于java - 是否有一个 Java 库可以根据数据的大小将数据缓存在内存或磁盘中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7322342/

相关文章:

链接到批处理文件的java变量

caching - Liferay 自定义实体缓存

ruby-on-rails - 生成为 ActiveRecord::Relation 的 Rails 缓存键

android - Retrofit with OKHttp 在离线时如何使用缓存数据

mysql - Glassfish 下的 Java EE 和 JPA,NoClassDefFound com/mysql/jdbc/ResultSetMetaData

java - 日期转换但不符合预期输出

java - 对子类使用 JPA 2.0 @Inheritance 注释是否有意义?

java - 使用 While 循环搜索二叉树

java - WildFly + java首选项在类路径中找不到自定义首选项类

java - 使用struts框架创建等待页面的最佳方式是什么