Page 45 - การโปรแกรมคอมพิวเตอร์ขั้นสูง
P. 45
สตริงบิวเดอร์ 2-35
ตัวอยา่ งท ่ี 2.18 การเขียนข้อมูลลงในไฟล์
ex2-18.java
1 class WriteData {
2 public static void main(String[] args) throws Exception {
3 java.io.File f1 = new java.io.File("C:\\Temp\\scores.txt");
4 if (f1.exists()) {
5 System.out.println("File already exists");
6 System.exit(0);
7 }
8 java.io.PrintWriter output = new java.io.PrintWriter(f1);
9 output.print("Nikom ");
10 output.println(90);
11 int i = 200;
12 output.print("Peerapol ");
13 output.println(i);
14 output.close();
15 }
16 }
คำ�อธิบายโปรแกรม
บรรทัดท ี่ 1-16 สร้างค ลาสช ื่อ WriteData
บรรทัดท ี่ 2-15 สร้างเมธอด main เพื่อเริ่มต ้นก ารทำ�งานของโปรแกรม
บรรทัดท ี่ 3 ส รา้ งอ อบเจก็ ตข์ องค ลาสไฟลจ์ ากไฟลช์ อื่ “scores.txt”พรอ้ มก บั ร ะบเุ สน้ ท างข องไฟล์คอื C:\\
Temp\\ และป ระกาศต ัวแปรแ บบอ ้างอิง ชื่อ f1 เพื่อใชส้ ำ�หรับอ ้างอิงไปย ังอ อบเจ็กตด์ ังก ล่าว
บรรทัดท ี่ 4-7 ต รวจส อบว ่าไฟล์ห รือไดเรกท อ รีข อง ออ บเจ็กต์ f1 มีอ ยู่จ ริงห รือไม่ ถ้าไฟล์น ั้นม ีอ ยู่จ ริงจ ะท ำ�
คำ�สั่งในบล็อค if ต่อ โดยแสดงข ้อความว ่า “File already exists” (คำ�สั่งบรรทัดที่ 5) คือ
ไฟลน์ ีม้ อี ยูแ่ ล้ว และห ยุดก ารท ำ�งานโดยอ อกจ ากโปรแกรมท ันที ด้วยค ำ�สั่ง System.exit(0);
(คำ�สั่งบรรทัดท ี่ 6) หากไฟล์ที่ต้องการสร้างน ั้นย ังไม่มีอยู่ จะทำ�งานท ี่ค ำ�สั่งบ รรทัดท ี่ 8
บรรทัดท ี่ 8 ส ร้างอ อบเจ็กต์ของพ รินต์ไรต์เทอร์ โดยน ำ�ข้อมูลเกี่ยวกับช ื่อไฟล์และตำ�แหน่งท ี่เก็บมาจ าก
ออบเจ็กต์ f1 ซึ่งจะท ำ�ให้เกิดเป็นไฟล์ใหม่ข ึ้นม า ชื่อ “scores.txt” และป ระกาศต ัวแปรแบบ
อ้างอิง ชื่อ output เพื่อใช้สำ�หรับอ้างอิงไปยังอ อบเจ็กต์ของพ รินต์ไรต์เทอร์ดังกล่าว
บรรทัดที่ 9 ใช้เมธอด print() เพื่อเขียนข้อมูลลงในไฟล์ด ้วยค ่า “Nikom ” ซึ่งหลังจากเขียนเสร็จแ ล้ว
เคอร์เซอร์ย ังค งอ ยู่ที่บ รรทัดเดิม
บรรทัดที่ 10 ใ ช้เมธอด println() เพื่อเขียนข้อมูลลงในไฟล์ด้วยค่า “90” ซึ่งหลังจากเขียนเสร็จแล้ว
เคอร์เซอร์จ ะเลื่อนไปอ ยู่บ รรทัดถ ัดไป ทำ�ให้ก ารเขียนข ้อมูลค รั้งต ่อไปจ ะเขียนท ี่บ รรทัดใหม่
บรรทัดท ี่ 11 ประกาศต ัวแปร i เป็นช นิด int และให้เก็บค่า 200