Page 42 - การโปรแกรมคอมพิวเตอร์ขั้นสูง
P. 42
2-32 การโปรแกรมคอมพิวเตอร์ขั้นสูง
เรอื่ งท่ี 2.2.1
การสร้างแ ละเขยี นไฟล์
หากศ ึกษาในต อนท ี่ 2.1 แล้ว จะเห็นว ่า คลาสไฟล์ไม่มีเมธอดสำ�หรับส ร้างห รืออ่านเขียนไฟล์ มีเฉพาะเมธอด
ที่ท ำ�งานเกี่ยวก ับก ารต รวจส อบค ุณสมบัติข องไฟล์ การเปลี่ยนช ื่อไฟล์ห รือไดเรกท อ รี และก ารล บไฟล์ ซึ่งในก ารท ำ�งาน
เกี่ยวกับไฟล์นั้น ในบางครั้งมีความจำ�เป็นที่จ ะต ้องสร้างไฟล์ใหม่ขึ้นม า หรืออ่านเขียนเนื้อหาของไฟล์ที่ต้องการ โดย
ภาษาจาวาได้จ ัดเตรียมค ลาสเอาไว้ส ำ�หรับส ร้างแ ละอ ่านเขียนไฟล์ ซึ่งม ีรายล ะเอียดด ังนี้
1. การสรา้ งไ ฟล์
ภาษาจ าวาได้จ ัดเตรียมคลาสพรินต์ไรต์เทอร์ (PrintWriter class) เอาไว้ส ำ�หรับการสร้างแ ละเขียนไฟล์ ซึ่ง
ถูกบ รรจุอยู่ในแพ็กเกจช ื่อ java.io.PrintWriter โดยเป็นการกระทำ�กับเท็กซ์ไฟล์ (text file) มีคอนส ตรัคเทอร์แ ละ
เมธอดข องค ลาสพรินต์ไรต์เทอร์ที่น่าส นใจดังนี้
1.1 การส ร้างไ ฟล์ด ้วยค ลาสพ รินต์ไ รต์เทอร์ ซึ่งผ ลลัพธ์จ ะได้ไฟล์ข ้อมูลใหม่เพิ่มข ึ้นม า โดยส ามารถส ร้างได้
จากคอนสตรัคเทอร์ข องค ลาส ซึ่งมีรายล ะเอียดดังนี้
รปู แ บบท ่ี 1 PrintWriter(String fileName)
โดย
filename คือ ตำ�แหน่งท ี่เก็บไฟล์และชื่อไฟล์ที่ต้องการส ร้าง ซึ่งค ่าที่ระบุต ้องเป็น String
คอนส ตรัคเทอร์นี้จ ะท ำ�การสร้างออบเจ็กต์ข องพรินต์ไรต์เทอร์ ซึ่งทำ�ให้เกิดเป็นไฟล์ใหม่ขึ้นมา โดยส ามารถ
ระบุต ำ�แหน่งท ี่เก็บไฟล์แ ละชื่อไฟล์ได้ ดังน ั้น filename จึงใช้แทนต ำ�แหน่งท ี่เก็บไฟล์แ ละชื่อไฟล์ที่ต้องการส ร้าง
รปู แ บบท ่ี 2 PrintWriter(File file)
โดย
file คือ ออบเจ็กต์ท ี่เกิดมาจากค ลาสไฟล์ ซึ่งค ่าที่ระบุต้องเป็นออบเจ็กต์
คอนส ตรัคเทอรน์ จี้ ะท �ำ การส ร้างอ อบเจก็ ตข์ องพ รนิ ตไ์ รตเ์ทอรเ์ชน่ ก ัน แตส่ รา้ งม าจ าก ออ บเจ็กตข์ องไฟลท์ เี่ กิด
จากคลาสไฟล์ ตามอ าร์กิวเมนต์ (argument) file ที่ส่งเข้าม า ซึ่งผลลัพธ์จะทำ�ให้เกิดเป็นไฟล์ใหม่ขึ้นม าได้เช่นกัน