คลาสไฟล์ Java คืออะไร
คลาสไฟล์ถูกกำหนดไว้ใน แพ็คเกจ java.ioและไม่สามารถทำงานกับสตรีมได้โดยตรง คลาส Java Fileคือการจัดการข้อมูลเกี่ยวกับไฟล์และไดเร็กทอรี ดังที่คุณทราบ ในระดับระบบปฏิบัติการ ไฟล์และไดเร็กทอรีเป็นวัตถุที่แตกต่างกัน อย่างไรก็ตามใน Java ทั้งคู่อธิบายไว้ในคลาสFile เดียวกัน คุณอาจสงสัยว่าทำไมไม่เพียงแค่ใช้สตริงเพื่ออ้างถึงไฟล์? ประการแรก เนื่องจากการเข้าถึงไฟล์จะแตกต่างกันไปตามระบบปฏิบัติการที่แตกต่างกันตัวสร้างคลาสไฟล์
ขึ้นอยู่กับว่า อ็อบเจ็กต์ Java.io.File Class ควรเป็นตัวแทนของไฟล์หรือไดเร็กทอรี เราสามารถใช้หนึ่งในคอนสตรัคเตอร์เพื่อสร้างอ็อบเจ็กต์: ไฟล์(ชื่อพาธสตริง)ในกรณีนี้คอนสตรัคเตอร์จะสร้าง อินสแตนซ์ ไฟล์ ใหม่ โดยการแปลงชื่อพาธที่กำหนด สตริงเป็นชื่อพาธนามธรรม ไฟล์ (String myPath, String myString)ตัวสร้างนี้สร้าง อินสแตนซ์ ไฟล์ ใหม่ จากสตริงชื่อพาธ myPath และสตริงชื่อพาธ myString ไฟล์ (พาเรนต์ของไฟล์ ชื่อสตริง)สร้าง อินสแตนซ์ ของไฟล์ ใหม่ จากชื่อพาธนามธรรมของไฟล์และสตริงชื่อพาธ ไฟล์ (URI uri) ในตัวสร้างในกรณีนี้จะสร้างอินสแตนซ์ ไฟล์ใหม่โดยการแปลงไฟล์ที่กำหนด: URI เป็นชื่อพาธแบบนามธรรม URI เป็นคลาส Java ที่แสดงการอ้างอิง Uniform Resource Identifier (URI) นี่คือตัวอย่างของ ตัวสร้างคลาส Java.io.File ที่แตกต่างกัน :import java.io.File;
import java.net.URI;
import java.net.URISyntaxException;
public class FileTest {
public static void main(String[] args) throws URISyntaxException {
File myFile1 = new File("d:\\MyCat");
File myFile2 = new File ("d:\\MyCat", "cat.txt");
File myFile3 = new File(myFile1, "cat.txt");
URI uri = new URI ("https://docs.oracle.com/javase/7/docs/api/java/net/URI.html");
File myFile4 = new File(uri);
}
}
วิธีการของคลาสไฟล์
คลาส Java Fileมีหลายวิธีที่ทำให้คุณสามารถจัดการไฟล์และไดเร็กทอรีได้ ลองพิจารณาบางส่วนของพวกเขา:-
บูลีน createNewFile()สร้างไฟล์ใหม่ที่เส้นทางที่ส่งผ่านไปยังตัวสร้าง คืนค่าเป็นจริงหากสำเร็จ มิเช่นนั้นจะเป็นเท็จ
-
boolean Delete()ลบไดเร็กทอรีหรือไฟล์ในพาธที่ส่งผ่านไปยังคอนสตรัคเตอร์ คืนค่าเป็นจริงเมื่อลบสำเร็จ
-
boolean existing()ตรวจสอบว่ามีไฟล์หรือไดเร็กทอรีอยู่ที่เส้นทางที่ระบุในตัวสร้างหรือไม่ หากมีไฟล์หรือไดเร็กทอรีอยู่ ให้คืนค่าเป็น true มิฉะนั้นจะคืนค่าเป็น false
-
สตริง getAbsolutePath()ส่งคืนเส้นทางสัมบูรณ์สำหรับเส้นทางที่ส่งผ่านไปยังตัวสร้างของวัตถุ
-
สตริง getName()ส่งคืนชื่อย่อของไฟล์หรือไดเร็กทอรี
-
String getParent()ส่งคืนชื่อของไดเร็กทอรีพาเรนต์
-
boolean isDirectory()คืนค่าเป็นจริงหากพาธที่กำหนดมีไดเร็กทอรี
-
boolean isFile()จะคืนค่าเป็นจริงหากมีไฟล์อยู่ในพาธที่กำหนด
-
boolean isHidden()จะคืนค่าเป็นจริงหากไดเร็กทอรีหรือไฟล์ถูกซ่อนอยู่
-
long length()ส่งคืนขนาดของไฟล์เป็นไบต์
-
long LastModified()ส่งคืนเวลาที่ไฟล์หรือไดเร็กทอรีถูกแก้ไขครั้งล่าสุด ค่านี้แสดงถึงจำนวนมิลลิวินาทีที่ผ่านไปนับตั้งแต่ยุค Unix
-
String[] list()ส่งคืนอาร์เรย์ของไฟล์และไดเร็กทอรีย่อยที่อยู่ในไดเร็กทอรีเฉพาะ
-
File[] listFiles()ส่งคืนอาร์เรย์ของไฟล์และไดเร็กทอรีย่อยที่อยู่ในไดเร็กทอรีเฉพาะ
-
boolean mkdir()สร้างไดเร็กทอรีใหม่และคืนค่าเป็นจริงหากสำเร็จ
-
boolean renameTo(File dest)เปลี่ยนชื่อไฟล์หรือไดเร็กทอรี
คุณสมบัติบางอย่างของคลาสไฟล์ Java
-
เส้นทาง นามธรรม หรือสตริง อาจเป็นได้ทั้งแบบสัมบูรณ์หรือแบบสัมพัทธ์ พาเรนต์ของพาธนามธรรมสามารถดึงข้อมูลได้โดยการเรียกเมธอดgetParent()ของคลาสนั้น
-
ขั้นแรกเราควรสร้างอ็อบเจ็กต์ของ คลาส Fileโดยส่งผ่านชื่อไฟล์หรือไดเร็กทอรี ระบบไฟล์สามารถกำหนดข้อจำกัดในการดำเนินการบางอย่างกับอ็อบเจ็กต์ระบบไฟล์จริง เช่น การอ่าน การเขียน และการดำเนินการ ข้อจำกัดเหล่านี้เรียกว่าสิทธิ์การเข้าถึง
-
อินสแตนซ์ของ คลาส Fileจะไม่เปลี่ยนรูป นั่นหมายความว่าเมื่อคุณสร้างไฟล์แล้ว เส้นทางนามธรรมที่แสดงโดย ออบเจ็กต์ Fileจะไม่เปลี่ยนแปลง
ตัวอย่างโค้ดคลาสไฟล์
มาสร้างโปรแกรมที่ทำงานกับไดเร็กทอรีกันดีกว่า ก่อนอื่นควรสร้างไดเร็กทอรีตามเส้นทางที่กำหนด จากนั้นสร้างไฟล์ใหม่และตรวจสอบว่ามีไฟล์และไดเร็กทอรีอยู่หรือไม่import java.io.File;
import java.io.IOException;
public class FileTest2 {
public static void main(String[] args) throws IOException {
//create a directory using mkdir() File class method
File dir = new File("d:\\MyDir");
boolean created = dir.mkdir();
if(created)
System.out.println("Folder has been created...");
else
System.out.println("Folder hasn't been created...");
File myFile = new File("d:\\MyDir\\cat.txt");
myFile.createNewFile();
System.out.println("File name: " + myFile.getName());
System.out.println("Parent folder: " + myFile.getParent());
if(myFile.exists())
System.out.println("File exists");
else
System.out.println("File not found");
}
}
นี่คือผลลัพธ์:
import java.io.File;
public class FileTest3 {
public static void main(String[] args) {
File dir = new File("d:\\MyDir");
File myFile = new File("d:\\MyDir\\cat.txt");
System.out.println("File name: " + myFile.getName());
System.out.println("Parent folder: " + myFile.getParent());
if (myFile.exists())
System.out.println("File exists");
else
System.out.println("File not found");
System.out.println("Absolute path: " + myFile.getAbsolutePath());
if (myFile.exists()) {
System.out.println("Is writable: " + myFile.canWrite());
System.out.println("Is readable: " + myFile.canRead());
System.out.println("Is a directory: " + myFile.isDirectory());
System.out.println("myFile Size in bytes = " + myFile.length());
}
}
}
ผลลัพธ์ของโปรแกรมคือ:
GO TO FULL VERSION