CodeGym /בלוג Java /Random-HE /Java - כתוב לקובץ
John Squirrels
רָמָה
San Francisco

Java - כתוב לקובץ

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

דוגמה ל-Java Write to File

בתור התחלה, בואו נסתכל על דוגמה פשוטה של ​​כתיבה לקובץ ב-Java. להלן דוגמה כיצד לכתוב מחרוזת לקובץ ב-Java באמצעות המחלקה FileWriter :

כיתת FileWriter

המחלקה FileWriter היא דרך נוספת לכתוב לקובץ ב-Java. זוהי מחלקת זרם תווים המאפשרת לך לכתוב נתוני תווים לקובץ. הנה דוגמה שמדגימה כיצד להשתמש במחלקה FileWriter כדי לכתוב מחרוזת לקובץ:
import java.io.FileWriter;
import java.io.IOException;


// Main method for the string to file in java starts from here,
public class WriteToFileExample {
    public static void main(String[] args) {
        // create a string to write text to file
        String data = "Hello, world!";

        try {
            // create a FileWriter object with the file name
            FileWriter writer = new FileWriter("output.txt");

            // write the string to the file
            writer.write(data);

            // close the writer
            writer.close();

            System.out.println("Successfully wrote text to file.");

        } catch (IOException e) {
            System.out.println("An error occurred.");
            e.printStackTrace();
        }
    }
}
בדוגמה זו, אנו יוצרים תחילה אובייקט String בשם data המכיל את הטקסט שאנו רוצים לכתוב לקובץ. לאחר מכן אנו יוצרים אובייקט FileWriter עם שם הקובץ שאנו רוצים לכתוב אליו, במקרה זה, בשם output.txt . לאחר מכן, אנו משתמשים בשיטת write() של האובייקט FileWriter כדי לכתוב את מחרוזת הנתונים לקובץ. שיטה זו לוקחת ארגומנט String המכיל את הנתונים לכתיבה. לבסוף, אנו סוגרים את האובייקט FileWriter כדי לשחרר את משאבי הקובץ ולהדפיס הודעת הצלחה למסוף אם פעולת הכתיבה הצליחה או הודעת שגיאה אם ​​נתפס חריג. מחלקת FileWriter היא דרך פשוטה לכתוב נתוני תווים לקובץ ב-Java.

מחלקה FileOutputStream

המחלקה FileOutputStream משמשת לכתיבת נתונים לקובץ כזרם של בתים. הנה דוגמה:
import java.io.FileOutputStream;
import java.io.IOException;

public class WriteToFileExample {
    public static void main(String[] args) {
        String textToWrite = "Hello World!";

        try {
            FileOutputStream stream = new FileOutputStream("output.txt");
            byte[] bytesToWrite = textToWrite.getBytes();
            stream.write(bytesToWrite);
            stream.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
בדוגמה זו, אנו יוצרים אובייקט FileOutputStream בשם stream עם שם הקובץ "output.txt" לכתיבה אליו. לאחר מכן אנו ממירים את מחרוזת textToWrite למערך בתים באמצעות שיטת getBytes() ונכתוב את מערך הבתים לאובייקט הזרם באמצעות שיטת write() . לבסוף, אנו סוגרים את אובייקט הזרם .

כיתת כותבים מפוצלים

המחלקה BufferedWriter משמשת לכתיבת טקסט לקובץ עם יכולות חציצה. הנה דוגמה:
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;

public class WriteToFileExample {
    public static void main(String[] args) {
        String textToWrite = "Hello World!";

        try {
            BufferedWriter writer = new BufferedWriter(new FileWriter("output.txt"));
            writer.write(textToWrite);
            writer.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
בדוגמה זו, אנו יוצרים אובייקט BufferedWriter בשם writer עם אובייקט FileWriter שכותב לקובץ "output.txt". לאחר מכן אנו משתמשים בשיטת write() של אובייקט הסופר כדי לכתוב את textToWrite לקובץ. לבסוף, נסגור את אובייקט הסופר .

שיטת WriteString()

שיטת writeString () היא שיטה נוחה שהוצגה ב-Java 11 לכתיבת מחרוזת לקובץ באמצעות המחלקה Files . זה מאפשר לך לכתוב מחרוזת לקובץ בשורת קוד אחת. הנה דוגמה:
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;

public class WriteToFileExample {
    public static void main(String[] args) {
        // create a string to write to a file
        String data = "Hello, world!";

        // create a file object
        Path file = Paths.get("output.txt");

        try {
            // write the string to the file using writeString() method
            Files.writeString(file, data);

            System.out.println("Successfully wrote text to file.");

        } catch (IOException e) {
            System.out.println("An error occurred.");
            e.printStackTrace();
        }
    }
}
בדוגמה זו, אנו יוצרים תחילה אובייקט String בשם data המכיל את הטקסט שאנו רוצים לכתוב לקובץ. לאחר מכן אנו יוצרים אובייקט Path בשם קובץ המייצג את הקובץ שאנו רוצים לכתוב אליו, במקרה זה, בשם "output.txt". לאחר מכן, אנו משתמשים בשיטת Files.writeString() כדי לכתוב את מחרוזת הנתונים לקובץ המיוצג על ידי אובייקט הקובץ . שיטה זו לוקחת שני ארגומנטים: אובייקט ה- Path המייצג את הקובץ שאליו יש לכתוב, ואובייקט String המכיל את הנתונים לכתיבה. לבסוף, אנו מדפיסים הודעת הצלחה למסוף אם פעולת הכתיבה הצליחה או הודעת שגיאה אם ​​נתפס חריג. שיטת writeString () היא דרך נוחה לכתוב מחרוזת לקובץ באמצעות Java 11 ואילך.

כיתת PrintWriter

המחלקה PrintWriter שוטפת את מאגר הפלט באופן אוטומטי לאחר כתיבת כל שורה, ומבטיחה שהנתונים ייכתבו מיד לקובץ. זה הופך אותו לבחירה נוחה לכתיבת כמויות גדולות של נתוני טקסט לקובץ. הנה דוגמא:
import java.io.PrintWriter;
import java.io.FileWriter;
import java.io.IOException;

public class WriteToFileExample {
    public static void main(String[] args) {
        String textToWrite = "Hello World!";

        try {
            PrintWriter writer = new PrintWriter(new FileWriter("output.txt"));
            writer.println(textToWrite);
            writer.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
בדוגמה זו, אנו יוצרים אובייקט PrintWriter בשם writer עם אובייקט FileWrite שכותב לקובץ "output.txt". לאחר מכן אנו משתמשים בשיטת println() של אובייקט הסופר כדי לכתוב את textToWrite לקובץ. לבסוף, נסגור את אובייקט הסופר .

מחלקה DataOutputStream

המחלקה DataOutputStream משמשת לכתיבת סוגי נתונים פרימיטיביים של Java לקובץ כזרם של בתים. הנה דוגמה:
import java.io.DataOutputStream;
import java.io.FileOutputStream;
import java.io.IOException;

public class WriteToFileExample {
    public static void main(String[] args) {
        String textToWrite = "Hello World!";
        int numberToWrite = 42;

        try {
            DataOutputStream stream = new DataOutputStream(new FileOutputStream("output.txt"));
            stream.writeUTF(textToWrite);
            stream.writeInt(numberToWrite);
            stream.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
בדוגמה זו, אנו יוצרים אובייקט DataOutputStream בשם stream , אשר כותב לקובץ "output.txt". לאחר מכן אנו משתמשים בשיטת writeUTF() של אובייקט הזרם כדי לכתוב את המחרוזת textToWrite ובשיטת writeInt() כדי לכתוב את המספר השלם numberToWrite לקובץ. לבסוף, אנו סוגרים את אובייקט הזרם .

ClassChannel

המחלקה FileChannel מספקת דרך לכתוב נתונים לקובץ באמצעות I/O ממופה זיכרון. הנה דוגמה:
import java.io.File;
import java.io.IOException;
import java.io.RandomAccessFile;
import java.nio.ByteBuffer;
import java.nio.channels.FileChannel;

public class WriteToFileExample {
    public static void main(String[] args) {
        String textToWrite = "Hello World!";

        try {
            File file = new File("output.txt");
            RandomAccessFile randomAccessFile = new RandomAccessFile(file, "rw");
            FileChannel channel = randomAccessFile.getChannel();
            ByteBuffer buffer = ByteBuffer.allocate(1024);
            buffer.put(textToWrite.getBytes());
            buffer.flip();
            channel.write(buffer);
            randomAccessFile.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
בדוגמה זו, אנו יוצרים תחילה אובייקט File בשם קובץ עם שם הקובץ "output.txt" כפרמטר. לאחר מכן אנו יוצרים אובייקט RandomAccessFile בשם randomAccessFile עם אובייקט הקובץ ומצב "rw" כפרמטרים. לאחר מכן אנו יוצרים אובייקט FileChannel בשם channel , אשר מאותחל באמצעות אובייקט randomAccessFile . לאחר מכן אנו יוצרים אובייקט ByteBuffer בשם buffer עם קיבולת של 1024 בתים ונשים את המחרוזת textToWrite כפרמטר. לאחר מכן, נהפוך את אובייקט המאגר כדי להכין אותו לכתיבה ונכתוב אותו לאובייקט הערוץ בשיטת write() . לבסוף, נסגור את האובייקט randomAccessFile .

סיכום

לסיכום, כתיבה לקובץ באמצעות Java היא משימה נפוצה בפיתוח תוכנה שניתן לבצע באמצעות מספר מחלקות ושיטות מובנות. במאמר זה, דנו בכמה דוגמאות כיצד לכתוב לתוך קובץ, כולל השימוש במחלקות FileOutputStream , BufferedWriter , FileWriter , PrintWriter , DataOutputStream ו- FileChannel . חשוב לציין כי בעת כתיבה לקובץ, טיפול נכון בשגיאות וסגירת הקובץ לאחר הכתיבה הם חיוניים על מנת להבטיח שהקובץ נשמר כראוי והמשאבים משוחררים כראוי. עם הדוגמאות הניתנות במאמר זה, למתחילים יכולים כעת לקבל הבנה בסיסית כיצד לכתוב לקובץ באמצעות Java ולהתחיל להתאמן ולהתנסות עם מקרי שימוש שונים.
הערות
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION