首页 > 解决方案 > 如何同时响应式地写入和读取文件

问题描述

有人知道在java中写入和读取文件(xml,json)的方法,其中java对象将能够以反应方式存储在文件中。

现在我 com.fasterxml.jackson.core.JsonGenerator用来将对象写入 json 文件。

从我正在使用的文件中读取 com.fasterxml.jackson.core.JsonParser

但我不能同时读写文件。我不想有很多打开/关闭文件描述符操作。

这是在java中做到这一点的方法吗?

我的业务场景:

我从一个大文件(超过几 GB)中读取记录,我需要在记录之间创建关系。不幸的是,输入文件中的记录没有排序,当所有记录都处于完美顺序时,不可能写入排序文件。

当我在记录之间创建关系时,我遍历输入文件并找到parent record并希望将记录写入第二个文件。

在第二步中,我想写child record,但我需要迭代(使用打开的写描述符读取文件操作),当我填写我现在使用的插入示例结构时,我需要为我record relations file找到 find并更新该父记录:parent recordchild recordchild structurechild_1 element

{
"parent_1": {
...
childs: [{
"child_1": { ... } 
}]
}
}

标签: java

解决方案


我认为我的情况的最佳解决方案是:

  • 读取父记录并为他查找所有子记录(存储在内存中)并在到达文件末尾后将我的父记录+子记录刷新到relations_file
  • 阅读和写作的最佳方法是使用 FileChannel

推荐阅读