Có InputStreams và OutputStreams trong Java close() khi hủy không? Tôi hoàn toàn hiểu rằng đây có thể là hình thức xấu (đặc biệt trong thế giới C và C++), nhưng tôi tò mò.Đầu vào/OutputStream có bị đóng không?
Ngoài ra, giả sử tôi có đoạn mã sau:
private void foo()
{
final string file = "bar.txt";
Properties p = new Properties();
p.load(new FileInputStream(file));
//...
}
Liệu các FileInputStream không tên đi ra khỏi phạm vi sau p.load(), và do đó bị phá hủy, kinda giống như quy tắc Phạm vi C++? Tôi đã cố gắng tìm kiếm phạm vi biến vô danh cho java trên Google, nhưng điều đó đã không bật lên những gì tôi nghĩ rằng nó sẽ được.
Cảm ơn.
Cảm ơn tất cả vì sự giúp đỡ! – Calyth
Lưu ý rằng 'try' với các tài nguyên trong Java 7 hoặc cao hơn sẽ làm cho vấn đề này trở thành một hoạt động tương đối đơn giản (chỉ yêu cầu một phép gán biến bổ sung và dĩ nhiên là' try' chính nó). Cũng lưu ý rằng mã trên sẽ tạo ra một cảnh báo (về sự thiếu đóng) trong môi trường Eclipse của tôi. –