ในส่วนก่อนหน้านี้ เราได้เรียนรู้วิธีสร้างสตรีมอินพุตแบบไบต์ของไฟล์ ในส่วนนี้ เราจะเรียนรู้วิธีใช้สตรีมอินพุตเพื่ออ่านไบต์และปิดสตรีมต่อไป
วัตถุประสงค์ของสตรีมอินพุตคือการจัดเตรียมช่องทางสำหรับการอ่านข้อมูลจากแหล่งที่มา โปรแกรมสามารถอ่านข้อมูลจากแหล่งที่มาผ่านช่องทางนี้ สตรีมไบต์ของไฟล์สามารถเรียกใช้วิธี การอ่าน ที่สืบทอดมาจากคลาสพาเรนต์เพื่ออ่านไฟล์ตามลำดับ ตราบใดที่สตรีมไม่ได้ปิด การเรียกใช้เมธอด read แต่ละครั้งจะอ่านเนื้อหาที่เหลือของไฟล์ตามลำดับจนกระทั่งสิ้นสุดไฟล์หรือสตรีมอินพุตไบต์ของไฟล์ถูกปิด
วิธีการอ่านของสตรีมอินพุตแบบไบต์จะอ่านข้อมูลในแหล่งที่มาเป็นไบต์
สตรีมอินพุตเรียกเมธอดนี้เพื่ออ่านข้อมูลไบต์เดียวจากแหล่งที่มา วิธีการนี้จะส่งคืนค่าไบต์ (จำนวนเต็มระหว่าง 0 ถึง 255) ถ้าไบต์ไม่ถูกอ่าน จะส่งกลับ -1
สตรีมอินพุตเรียกเมธอดนี้เพื่อพยายามอ่านไบต์ b.length จากแหล่งที่มาลงในอาร์เรย์ไบต์ b และส่งกลับจำนวนไบต์ที่อ่านจริง หากถึงจุดสิ้นสุดของไฟล์ -1 จะถูกส่งกลับ
สตรีมอินพุตเรียกเมธอดนี้เพื่อพยายามอ่านไบต์ len จากแหล่งที่มาลงในอาร์เรย์ไบต์ b และส่งกลับจำนวนไบต์ที่อ่านจริง หากถึงจุดสิ้นสุดของไฟล์ -1 จะถูกส่งกลับ และพารามิเตอร์ off ระบุตำแหน่งในอาร์เรย์ไบต์เพื่อเริ่มจัดเก็บข้อมูลที่อ่าน
หมายเหตุ : สตรีม FileInputStream จะอ่านไฟล์ตามลำดับ ตราบใดที่สตรีมไม่ได้ปิด การเรียกเมธอด read แต่ละครั้งจะอ่านเนื้อหาต้นฉบับที่เหลือตามลำดับจนกระทั่งสิ้นสุดแหล่งที่มาหรือสตรีมถูกปิด
สตรีมอินพุตทั้งหมดจะมีวิธีการปิด close() แม้ว่าสตรีมที่เปิดอยู่ทั้งหมดจะถูกปิดโดยอัตโนมัติเมื่อโปรแกรมสิ้นสุดลง แต่ก็ยังเป็นนิสัยที่ดีที่จะปิดสตรีมที่เปิดอยู่อย่างชัดเจนหลังจากที่โปรแกรมใช้สตรีมเสร็จแล้ว หากไม่ได้ปิดสตรีมแบบเปิด โปรแกรมอื่นอาจไม่ได้รับอนุญาตให้จัดการทรัพยากรที่ใช้โดยสตรีมเหล่านั้น
ตัวอย่างเช่น:
importjava.io.*;publicclassMain{publicstaticvoidmain(Stringargs[]){intn=-1;byte[]a=newbyte[100];ลอง{Filef=newFile(Main.java);InputStreamin=newFileInputStream(f);ในขณะที่( (n=in.read(a,0,100))!=-1){Strings=newString(a,0,n);System.out.print(s);}in.close();}catch(IOExceptione) {System.out.println(FilereadError+e);}}}
หมายเหตุ : เมื่อแปลงไบต์ที่อ่านเป็นสตริง ไบต์ที่อ่านจริงจะต้องถูกแปลงเป็นสตริง ดังตัวอย่างข้างต้น:
สตริง = newString (a, 0, n);
ไม่สามารถเขียนเป็น:
สตริง = newString (a, 0,100);