DB에서 큰 파일 텍스트를 작성하려고합니다. 2 밀론 줄 정도입니다. PrintWriter가 선 (println())을 인쇄하는 동안 파일 크기는 항상 0 바이트임을 관찰했습니다. 파일은 스트림이 닫힌 후에 크기 데이터를가집니다. 모든 데이터가 메모리에 먼저 저장되고 스트림이 닫힐 때 해제됩니다. 내 경우에는 1 밀론의 데이터 + - 2.5GB의 메모리가 소모되었습니다. 앱 충돌. 실시간으로 데이터를 쓰고 메모리 소비를 방지 할 수 있습니까?Java PrintWriter 대용량 메모리 사용
File file = new File("file.txt");
PrintWriter out;
out = new PrintWriter(new OutputStreamWriter(new BufferedOutputStream(new FileOutputStream(file)), "UTF-8"));
for (int i=0; i < 9999999; i++){
out.println("some data here");
}
out.close();
https://stackoverflow.com/questions/7753424/whats-the-most-efficient-way-to-write-large-text-file-in-java를 확인 했습니까? –
왜 PrintWriter 작성이 복잡합니까? 새로운 PrintWriter ("file.txt")를 사용할 수 있습니다. 그리고 귀하의 질문에 대답하기 위해 flush()를 'n'행마다 사용해보십시오. – Tharun