Я использую 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 явно заканчивается нулем. И это к концу моего файла 250k + line txt. Благодаря!
не Вы абсолютно уверены, что никаких исключений быть брошенным? Что бы вы сделали, если исключение * было выбрано? Будет ли он зарегистрирован? –
Jon - не забывайте, что PrintWriter отключает исключения - вам нужно использовать метод checkError, чтобы узнать, произошло ли это. – MetroidFan2002
Да, но BufferedReader и FileReader этого не делают, поэтому вызов readLine() может быть запущен. –