0Pricing
Java Academy · บทเรียน

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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. การโยนและข้อยกเว้นแบบกำหนดเอง
  2. try-with-resources (AutoCloseable)
  3. การเขียนโปรแกรมเชิงป้องกัน
← กลับไปที่ Java Academy