【发布时间】:2017-10-18 11:15:49
【问题描述】:
我正在尝试一次将大约 64000 条记录的大量数据写入文件。我收到了我在下面附加的例外情况。
我以前写的代码是
Path outputpath = Paths.get("file1.json");
try (BufferedWriter writer = Files.newBufferedWriter(outputpath, StandardCharsets.UTF_8, WRITE)) {
writer.write(jsonObject.toString());
} catch (Exception e) {
//error msg
}
这里我的“jsonObject”不过是一个包含 65000 行的 json 数组。
你能帮我以一种有效的方式将它写入我的文件,这样我就可以避免堆空间错误。
【问题讨论】:
-
不要在内存中创建 JSON 表示,将其流式传输到
writer。 -
您可以尝试使用该解决方案:stackoverflow.com/questions/1062113/…
-
启动JVM时给它更多内存,看看-Xmx命令行选项。或者尝试像 MleRutte 建议的那样进行流式传输
标签: java arrays bufferedwriter