java - 如何同时响应式地写入和读取文件
问题描述
有人知道在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 record
child record
child structure
child_1 element
{
"parent_1": {
...
childs: [{
"child_1": { ... }
}]
}
}
解决方案
我认为我的情况的最佳解决方案是:
- 读取父记录并为他查找所有子记录(存储在内存中)并在到达文件末尾后将我的父记录+子记录刷新到
relations_file
- 阅读和写作的最佳方法是使用 FileChannel
推荐阅读
- android - 如何从 android 获取照片并将其放入 Xamarin 表单中的 Image 控件中?
- google-apps-script - 使用 Google Apps 脚本在 Blogger 中创建帖子
- c++ - 忽略字符串流中的空格不适用于 skipws 标志
- google-apps-script - 如何设置数据范围
- google-apps-script - 谷歌表格:保持单元格值不变如果 importhtml 返回 #N/A 错误
- bash - 重试失败的 xcodebuild 测试
- ruby-on-rails - Selenium Chrome 看不到在 Rails Rspec Docker 环境中启用事务装置的数据库更改
- jquery - 从引导 daterangepicker 计算天数
- google-apps-script - Google 表格 - 在 iPhone 上打开时运行脚本
- node.js - 令牌没有通过 OAuth2 Google 和 Passport.js 传递到客户端