ทรัพยากรเป็นวัตถุที่ใช้อินเทอร์เฟซ AutoClosable เมื่อใดก็ตามที่คุณใช้ทรัพยากรในโปรแกรมของคุณ ขอแนะนำให้ปิดทรัพยากรหลังการใช้งาน
เริ่มแรก งานนี้เสร็จสิ้นโดยใช้บล็อกสุดท้าย
ตัวอย่าง
import java.io.File;import java.io.FileInputStream;import java.io.IOException;import java.util.Scanner; public class FinalExample { public static void main (String[] args) พ่น IOException { ไฟล์ไฟล์ =โมฆะ; FileInputStream inputStream =null; ลอง { file =ไฟล์ใหม่ ("D:\\source\\sample.txt"); inputStream =FileInputStream ใหม่ (ไฟล์); สแกนเนอร์ sc =สแกนเนอร์ใหม่ (inputStream); ในขณะที่ (sc.hasNextLine ()) { System.out.println (sc.nextLine ()); } } จับ (IOException ioe) { ioe.printStackTrace (); } ในที่สุด { inputStream.close(); } }}
ผลลัพธ์
นี่คือไฟล์ตัวอย่างที่มีข้อความตัวอย่าง
แขน
ARM ใน Java ย่อมาจากการจัดการทรัพยากรอัตโนมัติ ซึ่งเปิดตัวใน Java7 ในนั้น ทรัพยากรควรได้รับการประกาศที่บล็อก try และจะถูกปิดโดยอัตโนมัติเมื่อสิ้นสุดบล็อก เรียกอีกอย่างว่าบล็อกลองใช้กับทรัพยากร และวัตถุที่เราประกาศในนี้ควรเป็นทรัพยากร เช่น ควรเป็นประเภท AutoClosable .
ต่อไปนี้เป็นรูปแบบของคำสั่ง try-with-resources -
try(ClassName obj =new ClassName()){ //code……}
ตั้งแต่ JSE7 เป็นต้นไป จะมีการแนะนำคำสั่ง try-with-resources ในที่นี้ เราประกาศทรัพยากรอย่างน้อยหนึ่งรายการในบล็อกการลอง และทรัพยากรเหล่านี้จะถูกปิดโดยอัตโนมัติหลังการใช้งาน (ในตอนท้ายของบล็อกลอง)
ทรัพยากรที่เราประกาศในบล็อกการลองควรขยายคลาส java.lang.AutoCloseable
ตัวอย่าง
โปรแกรมต่อไปนี้สาธิตการลองใช้ทรัพยากรใน Java.import java.io.File;import java.io.FileInputStream;import java.io.IOException;import java.util.Scanner; FinalExample คลาสสาธารณะ FinalExample { โมฆะสาธารณะสาธารณะ main (สตริง [] args) พ่น IOException { ลอง (FileInputStream inputStream =ใหม่ FileInputStream (ไฟล์ใหม่ ("D:\\source\\sample.txt"));) { Scanner sc =สแกนเนอร์ใหม่ (inputStream); ในขณะที่ (sc.hasNextLine ()) { System.out.println (sc.nextLine ()); } } จับ (IOException ioe) { ioe.printStackTrace (); } }}
ผลลัพธ์
นี่คือไฟล์ตัวอย่างที่มีข้อความตัวอย่าง
ทรัพยากรมากมายใน Java
คุณยังสามารถประกาศทรัพยากรหลายรายการในทรัพยากรทดลองด้วย และทรัพยากรทั้งหมดจะถูกปิดพร้อมกันเมื่อสิ้นสุดบล็อก
ตัวอย่าง
<ก่อน> นำเข้า java.io.File; นำเข้า java.io.FileInputStream; นำเข้า java.io.FileOutputStream; นำเข้า java.io.IOException; คลาสสาธารณะ FileCopying { โมฆะสาธารณะหลัก (สตริง [] args) { ลอง (FileInputStream inS =ใหม่ FileInputStream(ไฟล์ใหม่("E:\\Test\\sample.txt")); FileOutputStream outS =ใหม่ FileOutputStream(ไฟล์ใหม่("E:\\Test\\duplicate.txt")){ ไบต์[] บัฟเฟอร์ =ไบต์ใหม่[1024]; ความยาว int; ในขณะที่ ((ความยาว =inS.read (บัฟเฟอร์))> 0) { outS.write (บัฟเฟอร์ 0, ความยาว); } System.out.println("คัดลอกไฟล์สำเร็จ!!"); } จับ (IOException ioe) { ioe.printStackTrace (); } }}ผลลัพธ์
คัดลอกไฟล์สำเร็จ!!