我在Windows 7上使用NetBeans 7.4。
当我尝试使用以下调用读取JSON文件时,
String jsonTxt = IOUtils.toString(new FileInputStream(inputFileName), "UTF-8");
我收到了OutOfMemoryError异常。我查看了,看到文件超过28 GB,所以我可能无法一次将其全部读入内存。
有没有办法只读入部分JSON文件,这样我就不会耗尽内存?在IOUtils中似乎没有合适的方法。
答案 0 :(得分:1)
您无法读取JSON文件的某些部分。 JSON结构取决于其元素及其嵌套级别。
大多数JSON解析库都有一个输入方法,它接受InputStream
(或Reader
)而不是String
。你应该尝试那些。请注意,如果映射的对象结构太大,您仍然会遇到问题。
您应该考虑检查您存储的内容以及将其存储在JSON中的原因。