【发布时间】:2021-04-11 08:08:33
【问题描述】:
我正在做一个项目,我必须从一个大型 json 文件中读取和写入,并在列表中显示内容,修改数据并将其保存回来。
目前我正在读取整个文件并使用 gson 对其进行序列化。
是否有一种有效的方式/库来读取/写入块/分页中的数据,然后序列化/反序列化它而不将整个文件加载到内存中?
【问题讨论】:
-
JSON 在整个“更新大文件”方面确实很糟糕。您最好的选择可能是将其转换为更易于操作的格式。如果您总是编辑不同的块,那么即使只是将每个这样的垃圾分成自己的文件,也已经使任务变得更加容易。
-
JSON 作为任何其他标记语言都可以处理大文件。您应该使用适当的技术——基于流/事件/令牌的 API 而不是对象映射器。这就像使用 SAX/StAX 而不是 DOM 来处理大型 XML... 参见例如 stackoverflow.com/questions/61868825/… stackoverflow.com/questions/64422516/… 等。