Java الكتابة إلى ملف – 4 طرق للكتابة في ملف بلغة الجافا

Java توفر عدة طرق للكتابة إلى ملف. يمكننا استخدام FileWriter, BufferedWriter, في جافا 7 Files و FileOutputStream لكتابة ملف في جافا.

Java Write to File

دعونا نلقي نظرة سريعة على أربعة خيارات لكتابة ملف في جافا.

  1. FileWriter: FileWriter هو أبسط طريقة لكتابة ملف في جافا. يوفر طرق كتابة متعددة لكتابة int، مصفوفة بايت، وسلسلة نصية إلى الملف. يمكنك أيضًا كتابة جزء من السلسلة أو مصفوفة البايت باستخدام FileWriter. يكتب FileWriter مباشرة في الملفات ويجب استخدامه فقط عندما يكون عدد عمليات الكتابة قليلاً.
  2. BufferedWriter: BufferedWriter متشابه تمامًا مع FileWriter ولكنه يستخدم طبقة تخزين مؤقت داخلية لكتابة البيانات في الملف. لذا إذا كان عدد عمليات الكتابة أكبر، فإن عمليات IO الفعلية أقل والأداء أفضل. يجب استخدام BufferedWriter عندما يكون عدد عمليات الكتابة أكبر.
  3. FileOutputStream: يتم استخدام FileWriter و BufferedWriter لكتابة النص إلى الملف، ولكن عندما تحتاج إلى كتابة بيانات تيار مباشر إلى الملف، يجب عليك استخدام FileOutputStream لكتابة الملف في لغة البرمجة جافا.
  4. Files: قدمت Java 7 فئة Files الفعالة ويمكننا كتابة ملف باستخدام وظيفتها للكتابة. داخلياً، يتم استخدام OutputStream لكتابة مصفوفة بايت في الملف.

Java Write to File Example

فيما يلي مثال يوضح كيف يمكننا كتابة ملف في لغة البرمجة جافا باستخدام FileWriter، BufferedWriter، FileOutputStream، وFiles في جافا. WriteFile.java

package com.journaldev.files;

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.OutputStream;
import java.nio.file.Files;
import java.nio.file.Paths;

public class WriteFile {

    /**
     * This class shows how to write file in java
     * @param args
     * @throws IOException 
     */
    public static void main(String[] args) {
        String data = "I will write this String to File in Java";
        int noOfLines = 10000;
        writeUsingFileWriter(data);
        
        writeUsingBufferedWriter(data, noOfLines);
        
        writeUsingFiles(data);
        
        writeUsingOutputStream(data);
        System.out.println("DONE");
    }

    /**
     * Use Streams when you are dealing with raw data
     * @param data
     */
    private static void writeUsingOutputStream(String data) {
        OutputStream os = null;
        try {
            os = new FileOutputStream(new File("/Users/pankaj/os.txt"));
            os.write(data.getBytes(), 0, data.length());
        } catch (IOException e) {
            e.printStackTrace();
        }finally{
            try {
                os.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
    
    /**
     * Use Files class from Java 1.7 to write files, internally uses OutputStream
     * @param data
     */
    private static void writeUsingFiles(String data) {
        try {
            Files.write(Paths.get("/Users/pankaj/files.txt"), data.getBytes());
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    /**
     * Use BufferedWriter when number of write operations are more
     * It uses internal buffer to reduce real IO operations and saves time
     * @param data
     * @param noOfLines
     */
    private static void writeUsingBufferedWriter(String data, int noOfLines) {
        File file = new File("/Users/pankaj/BufferedWriter.txt");
        FileWriter fr = null;
        BufferedWriter br = null;
        String dataWithNewLine=data+System.getProperty("line.separator");
        try{
            fr = new FileWriter(file);
            br = new BufferedWriter(fr);
            for(int i = noOfLines; i>0; i--){
                br.write(dataWithNewLine);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }finally{
            try {
                br.close();
                fr.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }

    /**
     * Use FileWriter when number of write operations are less
     * @param data
     */
    private static void writeUsingFileWriter(String data) {
        File file = new File("/Users/pankaj/FileWriter.txt");
        FileWriter fr = null;
        try {
            fr = new FileWriter(file);
            fr.write(data);
        } catch (IOException e) {
            e.printStackTrace();
        }finally{
            //إغلاق الموارد
            try {
                fr.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }

}

هذه هي الطرق القياسية لكتابة ملف في لغة البرمجة جافا، ويجب عليك اختيار أحد هذه الأساليب استنادًا إلى متطلبات مشروعك. وهذا كل شيء بخصوص مثال كتابة الملف في لغة البرمجة جافا.

يمكنك مراجعة المزيد من أمثلة Java IO من خلال مستودع GitHub الخاص بنا.

Source:
https://www.digitalocean.com/community/tutorials/java-write-to-file