Tôi đã tự hỏi rằng cách tốt nhất/thích hợp để giải phóng tài nguyên/xử lý tệp là gì.Phát hành tài nguyên I/O đúng cách
đang truyền thống,
BufferredInputStream stream = null
try{
----
stream = new BufferredInputStream(new FileInputStream());
----
} finally{
if(stream != null){
stream.close()
}
}
sẽ các tập tin xử lý được phát hành bằng cách đóng BufferredInputStream.close
một mình hoặc nó cần sự tiềm ẩn stream(i.e. FileInputStream.close())
cũng được gọi một cách rõ ràng.
P.S. Javadoc for [FilterOutputStream.close]
phương pháp chỉ định rằng nó sẽ đóng một cách rõ ràng luồng cơ bản. Nhưng các luồng khác dường như không có trong tài liệu này.
[FilterOutputStream.close]: http://docs.oracle.com/javase/1.4.2/docs/api/java/io/FilterOutputStream.html#close%28%29
Vui lòng tư vấn. Cảm ơn trước.
Bạn có thể dễ dàng kiểm tra nó bằng cách chỉ đóng đối tượng BufferredInputStream và cố gắng thao tác với FileInputStream và xem có bất kỳ ngoại lệ nào của luồng đóng được nâng lên hay không. Tôi tin rằng nó sẽ được đóng lại như bạn thấy trong nhiều ví dụ doc, luồng cơ bản được tạo ẩn danh – giorashc
Chỉ cần một gợi ý: Nếu bạn đang sử dụng JDK 7, hãy sử dụng các tài nguyên thử, nó đơn giản hơn rất nhiều. Xem [tại đây] (http://docs.oracle.com/javase/tutorial/essential/exceptions/tryResourceClose.html). –
Cảm ơn bạn đã gợi ý JavaNewbie_M107. Java 7 chưa được thêm vào dự án. Tôi đang mong chờ nó –