有没有办法在Java中只读取JSON文件的一部分?
我正在Windows 7上使用NetBeans 7.4 当我尝试通过以下调用读取JSON文件时有没有办法在Java中只读取JSON文件的一部分?,java,json,Java,Json,我正在Windows 7上使用NetBeans 7.4 当我尝试通过以下调用读取JSON文件时 String jsonTxt = IOUtils.toString(new FileInputStream(inputFileName), "UTF-8"); 我收到一个OutOfMemoryError异常。我检查了一下,发现文件超过了28GB,所以我可能无法一次将其全部读取到内存中 有没有办法只读取JSON文件的一部分,这样就不会耗尽内存?IOUtils中似乎没有合适的方法。您无法读取JSON文件
String jsonTxt = IOUtils.toString(new FileInputStream(inputFileName), "UTF-8");
我收到一个OutOfMemoryError异常。我检查了一下,发现文件超过了28GB,所以我可能无法一次将其全部读取到内存中
有没有办法只读取JSON文件的一部分,这样就不会耗尽内存?IOUtils中似乎没有合适的方法。您无法读取JSON文件的部分内容。JSON结构取决于其元素及其嵌套级别 大多数JSON解析库都有一个输入方法,它将接受
InputStream
(或Reader
)而不是字符串。你应该试试那些。请注意,如果映射的对象结构太大,仍然会有问题
<>你应该考虑一下你在存储什么,为什么要把它存储在JSON中。 有关流式json解析器,请参见+1。但是28GB?这里很可能存在设计问题。如果可能的话,您可能会考虑将其拆分为多个文件,或者寻找其他更好的存储方式。