파일에 한 번에 64000 개의 레코드 주위에 거대한 데이터를 쓰려고합니다. 나는 벨로우즈에 첨부 된 예외를 얻고있다. 파일에 쓰는 동안 Java 힙 공간 오류가 발생했습니다.
내가 작성하는 데 사용되는 코드는 여기에
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'로 스트리밍하십시오. –
그 해결책으로 시도해 볼 수 있습니다 : https://stackoverflow.com/questions/1062113/fastest-way-to-write-huge-data-in-text-file-java –
시작할 때 JVM에 더 많은 메모리를 제공하십시오 -Xmx 명령 행 옵션을보십시오. 또는 MleRutte가 제안한 것처럼 스트리밍 해 봅니다. –