Java 堆 space 保存 json 文件时出错
Java heap space error when save json file
我收到此错误:“OutOfMemoryError:Java 堆 space”,当使用 FileWriter
将大的 jsonObject 保存到文件时
我的代码:
FileWriter file2 = new FileWriter("C:\Users\....\test.json");
file2.write(jsonObject.toString());
file2.close();
我的pom
<groupId>com.googlecode.json-simple</groupId>
<artifactId>json-simple</artifactId>
<version>1.1</version>
</dependency>
非常感谢您的帮助并提前致谢。
也许 this 回答可以帮助您解决问题。您的 JVM 可能没有足够的(空闲)内存。另一种解决方案可能是将一个大的 JSON 对象拆分成许多较小的对象。
通过使用 toString()
,您首先创建了一个字符串对象,然后再将其写入 FileWriter
,这会为大型对象消耗大量内存。您应该使用 JSONObject.writeJSONString(Writer)
来减少内存占用:
final JSONObject obj = ...
try (final Writer writer = new FileWriter(new File("output"))) {
obj.writeJSONString(writer);
}
catch (IOException e) {
// handle exception
}
我收到此错误:“OutOfMemoryError:Java 堆 space”,当使用 FileWriter
将大的 jsonObject 保存到文件时我的代码:
FileWriter file2 = new FileWriter("C:\Users\....\test.json");
file2.write(jsonObject.toString());
file2.close();
我的pom
<groupId>com.googlecode.json-simple</groupId>
<artifactId>json-simple</artifactId>
<version>1.1</version>
</dependency>
非常感谢您的帮助并提前致谢。
也许 this 回答可以帮助您解决问题。您的 JVM 可能没有足够的(空闲)内存。另一种解决方案可能是将一个大的 JSON 对象拆分成许多较小的对象。
通过使用 toString()
,您首先创建了一个字符串对象,然后再将其写入 FileWriter
,这会为大型对象消耗大量内存。您应该使用 JSONObject.writeJSONString(Writer)
来减少内存占用:
final JSONObject obj = ...
try (final Writer writer = new FileWriter(new File("output"))) {
obj.writeJSONString(writer);
}
catch (IOException e) {
// handle exception
}