Tôi đang đọc một tập tin địa phương sử dụng một BufferedReader quấn quanh một FileReader:Tôi có cần đóng() cả FileReader và BufferedReader không?
BufferedReader reader = new BufferedReader(new FileReader(fileName));
// read the file
// (error handling snipped)
reader.close();
Tôi có cần phải close()
các FileReader
là tốt, hoặc wrapper sẽ xử lý đó? Tôi đã nhìn thấy mã nơi mọi người làm một cái gì đó như thế này:
FileReader fReader = new FileReader(fileName);
BufferedReader bReader = new BufferedReader(fReader);
// read the file
// (error handling snipped)
bReader.close();
fReader.close();
Phương pháp này được gọi từ một servlet, và tôi muốn chắc chắn rằng tôi không để lại bất kỳ tay cầm mở.
Bạn biết đấy, bạn chỉ có thể đọc nguồn thông tin như thế này. Tất cả đều có trong src.zip trong thư mục cài đặt JDK, hoặc bạn có thể đọc nó trực tuyến tại ví dụ http://www.docjar.com/html/api/java/io/BufferedReader.java.html – gustafc
Nói cho ai đó đọc nguồn là tồi tệ hơn nói "RTFM!". Và nếu nguồn có lỗi; ngầm chúng ta muốn biết hành vi * đúng * là gì? – Raedwald
Vâng ... từ quan điểm này: chỉ đến các thông số kỹ thuật API không phải là tốt hơn sau đó. Nếu nguồn không có lỗi gây ra rằng nó không hoạt động như nó được chỉ định trong tài liệu, bạn không thể dựa vào tài liệu. Vì vậy, không có cách nào tốt để trả lời một câu hỏi như vậy. – Atmocreations