เราได้เรียนรู้เกี่ยวกับสตรีมอินพุตไฟล์ไบต์ในส่วนที่แล้ว ดังนั้นเนื่องจากมีสตรีมเอาต์พุตไบต์ของไฟล์ จึงมีสตรีมเอาท์พุตไบต์ของไฟล์ที่สอดคล้องกันด้วย ในส่วนนี้ เราจะเรียนรู้เกี่ยวกับสตรีมเอาท์พุตไบต์ของไฟล์
การใช้เอาท์พุตสตรีมมักเกี่ยวข้องกับ 4 ขั้นตอนพื้นฐาน:
ในส่วนนี้ คุณจะคุ้นเคยกับสี่ขั้นตอนพื้นฐานข้างต้นโดยการศึกษาสตรีมเอาท์พุตไบต์ของไฟล์
หากข้อกำหนดการเขียนไฟล์ค่อนข้างง่าย คุณสามารถใช้ คลาส FileOutputStream (สตรีมเอาต์พุตไฟล์ไบต์) ซึ่งเป็นคลาสย่อยของคลาส OutputStream (เขียนเนื้อหาลงในไฟล์เป็นไบต์) วิธีการอินสแตนซ์ของคลาสนี้ทั้งหมดมาจากสืบทอดมา จากคลาส OutputStream
เราสามารถสร้างเอาต์พุตสตรีมที่ชี้ไปยังไฟล์โดยใช้วิธีคอนสตรัคเตอร์ต่อไปนี้พร้อมฟังก์ชันรีเฟรชของคลาส FileOutputStream
FileOutputStream (ชื่อสตริง); FileOutputStream (ไฟล์ไฟล์);
ตัวสร้างตัวแรกใช้ชื่อไฟล์ที่กำหนดเพื่อสร้างสตรีม FileOutputStream ตัวสร้างตัวที่สองใช้วัตถุ File เพื่อสร้างสตรีม FileOutputStream ไฟล์ที่ระบุโดยชื่อพารามิเตอร์และไฟล์เรียกว่าปลายทางของสตรีมเอาต์พุต
สตรีมเอาต์พุต FileOutputStream เปิดช่องสัญญาณไปยังไฟล์ (ปลายทางคือไฟล์นี้ และสตรีมเอาต์พุตชี้ไปที่ไฟล์นี้)
หมายเหตุ : หากไม่มีไฟล์ที่สตรีมเอาต์พุตชี้ไป Java จะสร้างไฟล์ หากไฟล์ที่สตรีมเอาต์พุตชี้ไปนั้นมีอยู่แล้ว สตรีมเอาต์พุตจะรีเฟรชไฟล์ (เพื่อให้ความยาวของไฟล์เป็น 0 ).
นอกจากนี้ เช่นเดียวกับการสร้างสตรีมอินพุต ข้อผิดพลาด (เรียกว่าข้อยกเว้น) อาจเกิดขึ้นเมื่อสร้างสตรีมเอาต์พุต ตัวอย่างเช่น ไฟล์ที่สตรีมเอาต์พุตพยายามเขียนอาจไม่อนุญาตให้ดำเนินการหรือมีข้อจำกัดอื่นๆ ดังนั้น สตรีมเอาต์พุตต้องถูกสร้างขึ้นในส่วน try block ของคำสั่ง try-catch และต้องตรวจพบและจัดการข้อยกเว้นในส่วน catch block
ตัวอย่างเช่น สร้างสตรีมเอาต์พุตที่ชี้ไปที่ Destination.txt:
ลอง{FileOutputStreamout=newFileoutputStream(destin.txt);//สร้างสตรีมเอาต์พุตที่ชี้ไปที่ไฟล์ destin.txt}catch(IOExceptione){System.out.println(Filewriteerror:+e);}
หรือ
Filef=newFile(destin.txt);//ระบุปลายทางของสตรีมเอาต์พุต ลอง{FileOutputStreamout=newFileOutputStream(f);//สร้างสตรีมเอาต์พุตที่ชี้ไปยังปลายทาง}catch(IOExceptione){System.out.println(Filewrite :+ จ);}
เราสามารถสร้างเอาต์พุตสตรีมที่ชี้ไปยังไฟล์โดยใช้วิธีคอนสตรัคเตอร์ต่อไปนี้ของคลาส FileOutputStream ที่สามารถเลือกมีฟังก์ชันการรีเฟรชได้
FileOutputStream (ชื่อสตริง, บูลีนผนวก); FileOutputStream (ไฟล์ไฟล์, บูลีนผนวก);
เมื่อใช้เมธอดคอนสตรัคเตอร์เพื่อสร้างเอาต์พุตสตรีมที่ชี้ไปที่ไฟล์ หากพารามิเตอร์ผนวกเป็นจริง สตรีมเอาต์พุตจะไม่รีเฟรชไฟล์ที่ชี้ไป (หากไฟล์มีอยู่แล้ว) และวิธีการเขียนของสตรีมเอาต์พุตจะเริ่มขึ้น จากจุดสิ้นสุดของไฟล์ เขียนข้อมูล พารามิเตอร์ผนวกเป็นเท็จ และสตรีมเอาต์พุตจะรีเฟรชไฟล์ที่ชี้ (หากไฟล์มีอยู่แล้ว)