ArrayList의 요소를 텍스트 문서에 쓰려고합니다.BufferedWriter가 전체 파일을 쓰지 않습니다 - 일부만
Path file = Paths.get("(filepath)");
BufferedWriter writer = Files.newBufferedWriter(file, Charset.forName("US-ASCII"));
for (int j = 0; j < 100000; j++) {
writer.write(Integer.toString(radicalsAndPositions.get(j).get(0)) + "," + Integer.toString(radicalsAndPositions.get(j).get(1)) + " , " + "\n");
}
ArrayList에이 100,000 요소까지 전체이며, 파일을 생성하지만 끝에서 값이 골대를 벗어났습니다 : 내 BufferedWriter의 코드는 (실제 파일 경로로)은 다음과 같다. 'j'를 10,000으로 제한하면 처음으로 생성 된 9170 개의 행만 가져옵니다. 전체 100,000으로, 나는 처음 99250 라인 만 얻는다.
'j'를 1000으로 제한하면 빈 파일이 생성됩니다.
문서가 올바르게 생성 중입니다. 올바른 요소를 사용하여 문서가 너무 일찍 끝납니다. 왜 그런가요? 어떻게 고칠 수 있습니까?
이유가 있습니까? 끝나지 않고는 부분적으로 만 씁니다. – Useablelobster
BufferedWrite의 개념은 버퍼링하는 것입니다. 버퍼가 가득 차면 플러시되어 별도의 IO 작동 횟수가 줄어 듭니다. 또한 플러시를 호출 할 때 및 작성자를 닫을 때 플러시됩니다. – Thomas
네, 분명히 이유가 있습니다. 파일을 쓰고있는 현재 스트림을 닫습니다. 파일에서 변경 한 내용을 반영하려면 파일을 닫아야합니다. 또한 스트림을 플러시합니다. – Prasad