Java יצירת קובץ חדש

יצירת קובץ היא פעולת קלט/פלט נפוצה מאוד. היום נסתכל על דרכים שונות ליצירת קובץ ב-Java.

יצירת קובץ ב-Java

קיימות שלוש שיטות פופולריות ליצירת קובץ ב-Java. בואו נסתכל עליהן אחת אחת.

  1. File.createNewFile()

    java.io.File מחלקה ניתן להשתמש בה כדי ליצור קובץ חדש ב-Java. כאשר אנו מאתחלים אובייקט File, אנו מספקים את שם הקובץ ואז ניתן לקרוא לשיטת createNewFile() כדי ליצור קובץ חדש ב-Java. שיטת createNewFile() מחזירה true אם נוצר קובץ חדש ו־false אם הקובץ כבר קיים. שיטה זו גם מזריקה java.io.IOException כאשר היא לא מצליחה ליצור את הקובץ. הקבצים שנוצרים הם ריקים ובגודל של אפס בתים. כאשר אנו יוצרים את אובייקט ה-File על ידי העברת שם הקובץ, זה יכול להיות עם נתיב מוחלט, או שאנו יכולים לספק רק את שם הקובץ או שאנו יכולים לספק את הנתיב היחסי. עבור נתיב לא מוחלט, אובייקט File מנסה לאתר קבצים בתיקיית השורש של הפרויקט. אם אנו מריצים את התוכנית מהשורת הפקודה, עבור הנתיב לא מוחלט, אובייקט File מנסה לאתר קבצים מהתיקייה הנוכחית. בעת יצירת נתיב לקובץ, אנו צריכים להשתמש במאפיין המערכת file.separator כדי להפוך את התוכנית שלנו לתלוית תלויתית. בואו נסתכל על תרחישים שונים עם תוכנית Java פשוטה כדי ליצור קובץ חדש ב-Java.

    package com.journaldev.files;
    
    import java.io.File;
    import java.io.IOException;
    
    public class CreateNewFile {
    
        /**
         * This class shows how to create a File in Java
         * @param args
         * @throws IOException 
         */
        public static void main(String[] args) throws IOException {
            String fileSeparator = System.getProperty("file.separator");
            
            //absolute file name with path
            String absoluteFilePath = fileSeparator+"Users"+fileSeparator+"pankaj"+fileSeparator+"file.txt";
            File file = new File(absoluteFilePath);
            if(file.createNewFile()){
                System.out.println(absoluteFilePath+" File Created");
            }else System.out.println("File "+absoluteFilePath+" already exists");
            
            //file name only
            file = new File("file.txt");
            if(file.createNewFile()){
                System.out.println("file.txt File Created in Project root directory");
            }else System.out.println("File file.txt already exists in the project root directory");
            
            //relative path
            String relativePath = "tmp"+fileSeparator+"file.txt";
            file = new File(relativePath);
            if(file.createNewFile()){
                System.out.println(relativePath+" File Created in Project root directory");
            }else System.out.println("File "+relativePath+" already exists in the project root directory");
        }
    
    }
    

    כאשר אנו מבצעים את התוכנית לעיל מ- Eclipse IDE לפעם הראשונה, הפלט הבא נוצר.

    /Users/pankaj/file.txt קובץ נוצר
    file.txt קובץ נוצר בתיקיית השורש של הפרויקט
    Exception in thread "main" 
    java.io.IOException: אין קובץ או תיקייה כזו
    	at java.io.UnixFileSystem.createFileExclusively(Native Method)
    	at java.io.File.createNewFile(File.java:947)
    	at com.journaldev.files.CreateNewFile.main(CreateNewFile.java:32)
    

    עבור הנתיב היחסי, זה מזריק IOException משום שתיקיית tmp אינה קיימת בתיקיית השורש של הפרויקט. לכן ברור ש־createNewFile() פשוט מנסה ליצור את הקובץ וכל תיקייה באופן מוחלט או יחסי צריכה לה

  2. FileOutputStream.write(byte[] b)

    אם ברצונך ליצור קובץ חדש ובו במקביל לכתוב נתונים כלשהם, ניתן להשתמש בשיטת הכתיבה של FileOutputStream. למטה מופיע קטע קוד פשוט שמציג את השימוש בשיטה זו. הכללים לנתיב מוחלט ולנתיב יחסי שנדונו לעיל חלים גם במקרה זה.

    String fileData = "Pankaj Kumar";
    FileOutputStream fos = new FileOutputStream("name.txt");
    fos.write(fileData.getBytes());
    fos.flush();
    fos.close();
    
  3. Java NIO Files.write()

    ניתן להשתמש במחלקת Java NIO Files כדי ליצור קובץ חדש ולכתוב נתונים לתוכו. זו אפשרות טובה מאחר ואין צורך לדאוג לסגירת משאבי ה-IO.

    String fileData = "Pankaj Kumar";
    Files.write(Paths.get("name.txt"), fileData.getBytes());
    

זהו כל הדברים ליצירת קובץ חדש בתוכנית ג'אווה.

ניתן לבדוק דוגמאות נוספות בג'אווה בעמוד ה-GitHub שלנו.

Source:
https://www.digitalocean.com/community/tutorials/java-create-new-file