0

我认为这将在stream的帮助下成为可能,但究竟如何呢?

目前我最好的猜测是为JsonXml使用库。

目前,有一些库,我看过可以一次只使用一个元素非常有效地解析和编写 json/xml 的教程(即https://sites.google.com/site/gson/streaming

主要问题是我的决赛中没有那么多元素,json/xml但我的元素的值很大!

想象一下,把整个文件编码成一个字符串,这样你就可以有一个json像这样的元素:"file1": "AAFA252265VFAAAAER............" <---这个字符串对于当前可用内存来说太长了

4

1 回答 1

0

好的,不用担心我找到了解决方案,我在这里分享它。

好吧,GSON是开源的,因此您可以看到它在下面是如何工作的。
有多种方法可以写入 json 值,但它们都不适用于流。
换句话说,它自己在流上写入 GSON 库,但没有这样的方法writer.value(stream)

解决方案

更优雅:当然,一种方法是您可以覆盖一个方法,或者只是复制粘贴整个方法并自己编写一个新方法。

虚拟但更快:创建一个Json 数组。因此,您无需编写单个 json 字符串,而是编写多个属于数组的 json 字符串。每个字符串的长度当然取决于你有多少可用内存!
使用 GSON 读取器逐个字符串读取此数组字符串会重新创建文件。

注意:您必须使用某种编码将文件写入字符串

于 2013-04-25T15:55:42.607 回答