Trước tiên, bạn sẽ đọc từ luồng đầu vào và sau đó đóng nó. Bạn có thể bọc FileInputStream trong một InputStream khác (hoặc Reader). Nó sẽ tự động đóng khi bạn đóng luồng / trình đọc gói.
Nếu đây là một phương thức trả về InputStream cho người gọi, thì người gọi có trách nhiệm đóng luồng khi kết thúc với nó. Nếu bạn đóng nó trong phương thức của mình, người gọi sẽ không thể sử dụng nó.
Để trả lời một số ý kiến của bạn ...
Để gửi nội dung InputStream đến một người tiêu dùng từ xa, bạn sẽ ghi nội dung của InputStream vào một OutputStream, rồi đóng cả hai luồng.
Người tiêu dùng từ xa không biết gì về các đối tượng luồng mà bạn đã tạo. Anh ta chỉ nhận được nội dung, trong một Dòng đầu vào mà anh ta sẽ tạo, đọc từ đó và đóng lại.