מהי מחלקת Java File
המחלקה File מוגדרת בחבילת java.io והיא לא עובדת ישירות עם זרמים. מחלקת Java File היא לנהל מידע על קבצים וספריות. כפי שאתה יודע, ברמת מערכת ההפעלה, קבצים וספריות הם אובייקטים שונים. עם זאת ב-Java, שניהם מתוארים על ידי אותה מחלקה File . אולי אתה תוהה מדוע לא פשוט להשתמש במחרוזות כדי להפנות לקבצים? קודם כל, כי הגישה לקבצים שונה במערכות הפעלה שונות.בוני מחלקות קבצים
תלוי אם האובייקט Java.io.File Class צריך לייצג קובץ או ספריה, נוכל להשתמש באחד מהבנאים כדי ליצור את האובייקט: File(String pathname) במקרה זה constructor יוצר מופע חדש של File על ידי המרת שם הנתיב הנתון מחרוזת לשם נתיב מופשט. File(String myPath, String myString) בנאי זה יוצר מופע קובץ חדש ממחרוזת שם נתיב myPath וממחרוזת שם נתיב myString. קובץ (הורה של קובץ, שם מחרוזת) יוצר מופע חדש של קובץ מתוך שם נתיב מופשט של קובץ וממחרוזת שם נתיב שם. File(URI uri) במקרה זה בנאי יוצר מופע קובץ חדש על ידי המרת הקובץ הנתון: URI לשם נתיב מופשט. URI היא מחלקת Java המייצגת הפניה לזיהוי משאבים אחיד (URI). הנה דוגמה לבנאים שונים של Java.io.File Class: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 יש מספר שיטות המאפשרות לך לתפעל קבצים וספריות. בואו נשקול כמה מהם:-
boolean createNewFile() יוצר קובץ חדש בנתיב המועבר לבנאי. מחזירה True אם מצליח, אחרת False
-
boolean delete() מוחק ספרייה או קובץ בנתיב המועבר לבנאי. מחזירה אמת לאחר מחיקה מוצלחת
-
boolean exists() בודק אם קובץ או ספריה קיימים בנתיב שצוין בבנאי. אם הקובץ או הספרייה קיימים, מחזירה true, אחרת מחזירה false
-
מחרוזת getAbsolutePath() מחזירה את הנתיב המוחלט עבור הנתיב שעבר לבנאי האובייקט
-
מחרוזת getName() מחזירה את השם הקצר של קובץ או ספריה
-
מחרוזת getParent() מחזירה את השם של ספריית האב
-
boolean isDirectory() מחזירה true אם הנתיב הנתון מכיל ספרייה
-
boolean isFile() מחזירה true אם יש קובץ בנתיב הנתון
-
boolean isHidden() מחזירה true אם הספרייה או הקובץ מוסתרים
-
long length() מחזיר את גודל הקובץ בבתים
-
long lastModified() מחזירה את הזמן שבו קובץ או ספריה שונו לאחרונה. הערך מייצג את מספר האלפיות השניות שחלפו מאז עידן יוניקס
-
String[] list() מחזירה מערך של קבצים וספריות משנה שנמצאים בספרייה ספציפית
-
File[] listFiles() מחזיר מערך של קבצים ותתי ספריות שנמצאים בספרייה ספציפית
-
boolean mkdir() יוצר ספרייה חדשה ומחזיר true אם מצליח
-
boolean renameTo(File dest) משנה שם קובץ או ספריה
כמה תכונות של מחלקת Java File
-
הנתיב, מופשט או מחרוזת, יכול להיות מוחלט או יחסי. ניתן לאחזר את האב של נתיב מופשט על ידי קריאה למתודה getParent() של אותה מחלקה.
-
ראשית עלינו ליצור אובייקט של המחלקה 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