Mã của tôi cần đọc trong tất cả tệp. Hiện tại tôi đang sử dụng mã sau:Làm thế nào để xem một Reader có ở EOF không?
BufferedReader r = new BufferedReader(new FileReader(myFile));
while (r.ready()) {
String s = r.readLine();
// do something with s
}
r.close();
Nếu tệp hiện tại trống, thì s
là không có giá trị, không tốt. Có bất kỳ Reader
nào có phương thức atEOF()
hoặc tương đương không?
Phương pháp sẵn sàng() chỉ nói cho dù đọc tiếp theo sẽ chặn. Nếu Reader đang ở thời điểm cuộc gọi tiếp theo sẽ không chặn; nó sẽ trở lại ngay lập tức với một dấu hiệu EOF (null cho readline, -1 để đọc). –
Thậm chí tốt hơn: làm trong khi thay vì trong khi. –
JavaDoc của 'BufferedReader.readLine()' nói nó trả về "Chuỗi chứa nội dung của dòng ... hoặc null ** nếu kết thúc luồng đã đạt **" – Raedwald