2012-03-03 26 views

Trả lời

25

Bạn cần phải đóng Luồng đầu vào, bởi vì luồng được trả về theo phương pháp bạn đề cập thực sự là FileInputStream hoặc một số phân lớp khác của InputStream nắm giữ tay cầm cho tệp. Nếu bạn không đóng luồng này, bạn có sự rò rỉ tài nguyên.

+1

Tôi không nghĩ rằng đó sẽ là một FileInputStream trong hầu hết các trường hợp. –

+0

Tôi nên điều tra trong đó, tiếc là tôi không có bất kỳ trường hợp java nào trong tầm tay tại thời điểm này. Tuy nhiên, tôi đồng ý với bạn rằng nó đang nắm giữ một tập tin xử lý. –

+0

Sẽ không phương thức finalize() đóng luồng tài nguyên cho bạn? –

19

Không, điều đó không có nghĩa là - bởi vì InputStream là lớp trừu tượng và getResourceAsStream() trả về lớp con cụ thể có phương pháp close() thực hiện điều gì đó - quan trọng nhất là xử lý tệp miễn phí.

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