try-with-resources (AutoCloseable)
ใช้ try-with-resources และ AutoCloseable เพื่อจัดการทรัพยากรอย่างปลอดภัย
try-with-resources (AutoCloseable) เป็นบทเรียน Java Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 3 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Java Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Java Academy มีบทเรียนทั้งหมด 3 บทเรียน
บทนำ
ทรัพยากรต่าง ๆ เช่น ไฟล์หรือซ็อกเก็ตจำเป็นต้องปิด การจัดการทรัพยากรอัตโนมัติด้วยบล็อกทดลองจะปิดทรัพยากรเหล่านั้นโดยอัตโนมัติ หากทรัพยากรนั้นนำ AutoCloseable ไปใช้
แนวคิด AutoCloseable
คลาสใดก็ตามที่นำ AutoCloseable ไปใช้สามารถนำมาใช้งานได้ ตัวอย่างที่พบบ่อย ได้แก่ FileReader, BufferedReader และการเชื่อมต่อฐานข้อมูล
โค้ด: ปิด FileReader อัตโนมัติ
FileReader นี้จะถูกปิดโดยอัตโนมัติหลังจากบล็อกทดลองสิ้นสุดลง แม้ว่าจะเกิดข้อยกเว้นก็ตาม
public class Main {
public static void main(String[] args) {
try (java.io.FileReader fr = new java.io.FileReader("test.txt")) {
int ch = fr.read();
System.out.println("First char code=" + ch);
} catch (java.io.IOException e) {
System.out.println("Error: " + e.getMessage());
}
}
}
ทรัพยากรหลายรายการ
คุณสามารถเปิดทรัพยากรหลายรายการภายในบล็อกทดลองเดียวกันได้ ทรัพยากรเหล่านี้จะถูกปิดโดยอัตโนมัติตามลำดับย้อนกลับ
โค้ด: ทรัพยากรสองรายการ
ทั้ง BufferedReader และ PrintWriter จะถูกปิดโดยอัตโนมัติ โดยเรียงย้อนกลับจากลำดับที่สร้าง
public class Main {
public static void main(String[] args) {
try (java.io.BufferedReader br = new java.io.BufferedReader(new java.io.FileReader("test.txt"));
java.io.PrintWriter pw = new java.io.PrintWriter("out.txt")) {
String line = br.readLine();
pw.println(line);
} catch (java.io.IOException e) {
System.out.println("Error: " + e.getMessage());
}
}
}
โค้ด: AutoCloseable แบบกำหนดเอง
คุณสามารถนำ AutoCloseable ไปใช้ด้วยตนเองได้ เมธอด close() จะถูกเรียกโดยอัตโนมัติ
public class Main {
static class MyRes implements AutoCloseable {
public void use() { System.out.println("Using resource"); }
public void close() { System.out.println("Closed resource"); }
}
public static void main(String[] args) {
try (MyRes r = new MyRes()) {
r.use();
}
}
}
ตรวจสอบการจัดการทรัพยากรอัตโนมัติด้วยบล็อกทดลอง
คำถามตรวจสอบอย่างรวดเร็ว: ประโยชน์หลักของการจัดการทรัพยากรอัตโนมัติด้วยบล็อกทดลองคืออะไร
ทบทวน
ทบทวน: การจัดการทรัพยากรอัตโนมัติด้วยบล็อกทดลองทำงานร่วมกับ AutoCloseable และช่วยให้การเก็บกวาดไฟล์ สตรีม และทรัพยากรแบบกำหนดเองปลอดภัย
คำถามที่พบบ่อย
บทเรียน “try-with-resources (AutoCloseable)” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “try-with-resources (AutoCloseable)” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Java Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Java Academy มีบทเรียนทั้งหมด 3 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “try-with-resources (AutoCloseable)”
ใช้ try-with-resources และ AutoCloseable เพื่อจัดการทรัพยากรอย่างปลอดภัย คุณปฏิบัติ Java Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Java Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Java Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 2 จากทั้งหมด 3 บทเรียน
บทเรียน “try-with-resources (AutoCloseable)” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Java Academy นี้ได้ไหม
ได้ บทเรียน Java Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- การโยนและข้อยกเว้นแบบกำหนดเอง
- try-with-resources (AutoCloseable)
- การเขียนโปรแกรมเชิงป้องกัน