BufferedReader와 PrintWriter를 사용하여 입력 파일의 각 행을 살펴보고 일부 행을 변경 한 다음 결과를 출력합니다. 한 줄이 변경되지 않으면 출력 파일에 그대로 인쇄됩니다. 그러나 어떤 이유로 프로세스가 너무 일찍 종료됩니다. 그러나, 어떤 이상한 이유로,이 과정이 조기에 종료BufferedReader/PrintWriter 문제가 있습니까?
BufferedReader in = new BufferedReader(new FileReader("in.txt"));
FileOutputStream out = new FileOutputStream("out.txt");
PrintWriter p = new PrintWriter(out);
String line = in.readLine();
while(line!=null)
{
if(line is special)
do edits and p.println(edited_line);
else
p.println(line);
line = in.readLine();
}
(실제로는 라인의 반을 출력) 내 입력 파일의 맨 끝으로 : 코드는 다음과 같이 보입니다. 이것에 대한 명백한 이유는 무엇입니까? while 루프는 null로 끝납니다. 그리고 그것은 내 250k + 라인 txt 파일의 끝 부분입니다. 감사!
는 당신이 절대적으로 확신 예외가 발생하지되고 있는가하는 파일 출력 스트림을 닫습니다? 예외가 던져지면 당신은 무엇을하겠습니까? 그것은 기록 될 것인가? –
Jon - PrintWriter가 예외를 잡아 먹는 것을 잊지 마십시오. "checkError"메서드를 사용하여 예외가 발생했는지 확인해야합니다. – MetroidFan2002
네,하지만 BufferedReader와 FileReader는 그렇지 않습니다 - 그래서 readLine()에 대한 호출이 발생했습니다. –