2013-07-07 83 views
5

Tôi đang tạo nhật ký và tôi muốn đọc dòng cuối cùng của tệp log.txt, nhưng tôi gặp sự cố khi BufferedReader dừng lại khi dòng cuối cùng là đọc.cách đọc dòng cuối cùng trong tệp văn bản bằng cách sử dụng java

Dưới đây là mã của tôi:

try { 
    String sCurrentLine; 

    br = new BufferedReader(new FileReader("C:\\testing.txt")); 

    while ((sCurrentLine = br.readLine()) != null) { 
     System.out.println(sCurrentLine); 
    } 
} catch (IOException e) { 
    e.printStackTrace(); 
} finally { 
    try { 
     if (br != null)br.close(); 
    } catch (IOException ex) { 
     ex.printStackTrace(); 
    } 
} 
+0

http: // stackoverflow.com/questions/686231/java-quickly-read-the-last-line-of-a-text-file –

+2

IMO, đây KHÔNG phải là một câu hỏi trùng lặp. –

+0

Xem câu trả lời này: http://stackoverflow.com/a/11665098/548225 – anubhava

Trả lời

14

Dưới đây là một tốt solution.

Trong code của bạn, bạn chỉ có thể tạo ra một biến phụ trợ gọi lastLine và không ngừng khởi tạo lại nó vào dòng hiện như sau:

String lastLine = ""; 

    while ((sCurrentLine = br.readLine()) != null) 
    { 
     System.out.println(sCurrentLine); 
     lastLine = sCurrentLine; 
    } 
+3

Liên kết của bạn là đệ quy? o.O – Zong

+1

Thật vui nhộn. Đã sửa. –

6

đoạn này nên làm việc cho bạn:

BufferedReader input = new BufferedReader(new FileReader(fileName)); 
    String last, line; 

    while ((line = in.readLine()) != null) { 
     last = line; 
    } 
    //do something with last! 
+0

chúng tôi đang kiểm tra các điều kiện không null trong khi vòng lặp nó tự tại sao chúng ta cần điều kiện nếu lồng nhau bên trong? – Subayan

+0

@Subayan Sai lầm về phía tôi, đã được sửa! –

Các vấn đề liên quan