เราจำเป็นต้องปิด InputStream ใน Java หรือไม่
เราจำเป็นต้องปิด InputStream ใน Java หรือไม่

วีดีโอ: เราจำเป็นต้องปิด InputStream ใน Java หรือไม่

วีดีโอ: เราจำเป็นต้องปิด InputStream ใน Java หรือไม่
วีดีโอ: Learn Java Programming - InputStreamReader class Tutorial 2024, ธันวาคม
Anonim

2 คำตอบ คุณ จำเป็นต้องปิด NS อินพุตสตรีม เนื่องจากสตรีมที่ส่งคืนโดยวิธีที่คุณพูดถึงคือ FileInputStream หรือคลาสย่อยอื่น ๆ ของ InputStream ที่จับสำหรับไฟล์ ถ้าคุณ ทำ ไม่ ปิด สตรีมนี้คุณ มี การรั่วไหลของทรัพยากร

เมื่อคำนึงถึงสิ่งนี้ จำเป็นต้องปิด InputStream ใน Java หรือไม่

แต่ อินพุตสตรีม s ไม่เคยปิด นี่คือสแตนด์อโลน Java โปรแกรมและมีหลายโปรแกรมดังกล่าวที่ InputStream ไม่เคยปิด โดยปกติไฟล์จะถูกปิดเมื่อไฟล์ InputStream วัตถุถูกรวบรวมขยะหรือเมื่อโปรแกรมสิ้นสุด ปกติไม่ควรปล่อยของไว้แบบนี้

เหตุใดเราจึงควรปิดสตรีมใน Java สำคัญไฉน ปิดลำธาร เพื่อปล่อย file descriptor ที่จัดโดยคลาสนี้ เป็นทรัพยากรที่จำกัด และใช้ในการเชื่อมต่อซ็อกเก็ตและการจัดการไฟล์ การรั่วไหลของทรัพยากรอย่างร้ายแรงอาจส่งผลให้เกิดข้อยกเว้นตัวอธิบายไฟล์เช่นกัน

ประการที่สอง ฉันต้องปิด FileInputStream หรือไม่

ใช่คุณ ต้องปิด กระแสข้อมูลเข้าถ้าคุณ ต้องการ ทรัพยากรระบบของคุณถูกปล่อยกลับ FileInputStream . ปิด () คือสิ่งที่คุณ ความต้องการ . คุณก็ได้ ต้องปิด () หรือสิ้นสุดโปรแกรมของคุณ

ฉันต้องปิด ByteArrayInputStream หรือไม่

4 คำตอบ ไม่ต้อง ปิด ByteArrayInputStream ในขณะที่มันไม่ได้ถูกอ้างอิงโดยตัวแปรใด ๆ ตัวรวบรวมขยะจะปล่อยสตรีมและบางไบต์ (แน่นอนว่าจะไม่ถูกอ้างอิงที่อื่น)

แนะนำ: