2015-06-08 2 views
0

Я пытаюсь написать строку в конце текстового документа, но ничего не печатается в конце hello2.txt с этим кодом, который печатается только hello.txt. Эта строка last line in the text document. не печатается в конце hello2.txt. Как я могу это исправить?Запись строки в конце текстового документа

Я ценю любую помощь.

hello.txt

I am at home 
how are you brother? 
I am facing problem 

hello2.txt должно выглядеть как этот

I am at home 
how are you brother? 
I am facing problem 
last line in the text document. 

Код:

public static void main(String[] args) { 
    File file = new File("D:\\hl_sv\\hello.txt"); 
    try (PrintWriter writer = new PrintWriter("D:\\hl_sv\\hello2.txt"); 

    Scanner scanner = new Scanner(file)) { 
     while (scanner.hasNextLine()) { 
      String line = scanner.nextLine(); 

      if (line.isEmpty()) { 
       System.out.println("last line in the text document"); 
       writer.println("last line in the text document."); 
      } else { 
       writer.println(line); 
      } 

     } 

    } catch (FileNotFoundException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
} 
+1

Я не думаю, что вы хотите использовать isEmpty(), чтобы проверить последнюю строку. –

+0

@XorProgramming - это не тот же вопрос, и не та же проблема. – MByD

+0

дубликат этого вопроса http://stackoverflow.com/questions/30714916/check-whether-the-line-is-the-last-one-in-the-text-document/30715315#30715315 –

ответ

2

После последней строки while (scanner.hasNextLine()) будет оцениваться как false, те, которые не входят в цикл снова, и не записывают последнюю строку. Вам нужно добавить строку после завершения цикла.

+1

@Tom - re right, я не знаком с возможностями Java7. Благодаря! – MByD

+0

Это хорошо о заявлении try-with-resources ... мы не можем забыть правильно закрыть ресурс: D. – Tom

2

Кроме того, б оскольку это выглядит, как вы хотите, чтобы добавить эту строку в конец текстового файла, используйте:

writer = new PrintWriter(new FileWriter(nameOfFile, true)); 

На самом деле, просто просто использовать метод (String) в writer.append для того, чтобы добавить нужную строку на конец файла.

Смежные вопросы