2013-05-10 3 views
0

Итак, я пытаюсь прочитать файл на Java. Он отлично работает, если последняя строка не пуста, и в этом случае она игнорируется; но мне тоже нужно прочитать эту пустую строку.Прочтите последнюю строку из файла

Вот мой код:

try 
     { 
      BufferedReader in = new BufferedReader(new  FileReader("filename.txt")); 

     String Line; 

     while((Line = in.readLine()) != null) 
     { 
      System.out.println("L| " + Line); 
     } 

     } 
     catch(Exception e){e.printStackTrace();} 
    } 
+0

Этот код не должен игнорировать любую существующую строку, пустую или нет. Вы уверены, что есть линия? Можете ли вы проверить с помощью 'wc -l' и сравнить это с счетчиком, который вы реализуете в своем цикле? – jlordo

+0

, пожалуйста, закройте поток 'in', когда закончите. – xagyg

+0

Возможный дубликат http://stackoverflow.com/questions/9922859/bufferedreader-readline-issue-detecting-end-of-file-and-empty-return-lines – xagyg

ответ

1

первый класс использования сканера ... как они гула проще в использовании ...., а затем сохранить каждую строку в списке, а затем получить последнюю строку .. вот код:

public void readLast()throws IOException{ 
     FileReader file=new FileReader("E:\\Testing.txt"); //address of the file 
     List<String> Lines=new ArrayList<>(); //to store all lines 
     Scanner sc=new Scanner(file); 
     while(sc.hasNextLine()){ //checking for the presence of next Line 
      Lines.add(sc.nextLine()); //reading and storing all lines 
     } 
     sc.close(); //close the scanner 
     System.out.print(Lines.get(Lines.size()-1)); //displaying last one.. 
    } 
Смежные вопросы