BufferedWriter가 출력 파일에 완전히 쓰지 않음: 문제 및 해결 방법 이해
Java에서 출력에 데이터를 쓰기 위해 BufferedWriter를 생성할 때 파일의 경우 완전한 데이터 전송을 보장하려면 버퍼링 메커니즘을 이해하는 것이 중요합니다. BufferedWriter의 내부 버퍼는 데이터를 기본 출력 스트림으로 플러시하기 전에 저장합니다. 이렇게 하면 쓰기 작업 수가 줄어들어 성능이 향상되지만 제대로 닫히지 않으면 데이터가 불완전해질 수도 있습니다.
귀하의 경우, SQL 문을 파일에 쓰는 동안 프로그램이 조기 종료되는 것처럼 보입니다. 데이터가 누락되었습니다. 이는 프로그램이 끝나기 전에 BufferedWriter의 버퍼가 완전히 플러시되지 않았음을 의미합니다.
해결책은 쓰기가 끝나면 BufferedWriter를 닫는 것입니다. 이 작업은 버퍼를 비우고 나머지 데이터를 기본 출력 스트림으로 보내는 플러시() 메서드를 트리거합니다. 코드 끝에
out.close();
행을 추가하면 BufferedWriter에 쓴 모든 데이터가 실제로 출력 파일에 기록되도록 할 수 있습니다.
기억하세요. BufferedWriter는 기본 FileWriter도 닫고, 결과적으로 OutputStream도 닫힙니다. BufferedWriter를 닫으면 보류 중인 모든 데이터가 플러시되고 안전하게 파일로 전송된다는 것을 보장할 수 있습니다. 이렇게 하면 닫히지 않은 BufferedWriter로 인해 발생할 수 있는 데이터 손실이나 잘림 가능성이 제거됩니다.
위 내용은 내 BufferedWriter가 모든 데이터를 파일에 쓰지 않는 이유는 무엇이며 어떻게 해결합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!