إضافة Java إلى الملف

اليوم سنتعرض لكيفية إضافة محتوى إلى ملف في جافا. إضافة محتوى إلى ملف في جافا هي عملية شائعة في الـ مدخلات/مخرجات جافا. على سبيل المثال، عندما نقوم بطباعة شيء ما في سجلات الخادم، يتم إضافته إلى الملف الموجود مسبقًا.

إضافة محتوى إلى ملف في جافا

يمكننا إضافة محتوى إلى ملف في جافا باستخدام الكلاسات التالية.

  1. إضافة محتوى إلى ملف في جافا باستخدام FileWriter
  2. إضافة محتوى إلى ملف موجود باستخدام BufferedWriter
  3. إضافة نص إلى ملف في جافا باستخدام PrintWriter
  4. إضافة إلى ملف في جافا باستخدام FileOutputStream

إذا كنت تعمل على بيانات نصية وعدد عمليات الكتابة قليلة، استخدم FileWriter واستخدم منشئه مع قيمة العلامة المرجعية للإضافة كـ true. إذا كان عدد عمليات الكتابة كبيرًا، يجب عليك استخدام BufferedWriter. لإضافة بيانات ثنائية أو بيانات تيار غير معالجة إلى ملف موجود، يجب عليك استخدام FileOutputStream.

إضافة محتوى إلى ملف في جافا باستخدام FileWriter

ها هو البرنامج القصير لإلحاقه بملف في جافا باستخدام FileWriter. سننظر في برنامج مثال كامل لإلحاقه بملف في جافا لاحقًا.

File file = new File("append.txt");
FileWriter fr = new FileWriter(file, true);
fr.write("data");
fr.close();

إلحاق محتوى جافا بملف موجود باستخدام BufferedWriter

File file = new File("append.txt");
FileWriter fr = new FileWriter(file, true);
BufferedWriter br = new BufferedWriter(fr);
br.write("data");

br.close();
fr.close();

إلحاق نص بملف في جافا باستخدام PrintWriter

يمكننا أيضًا استخدام PrintWriter لإلحاقه بملف في جافا.

File file = new File("append.txt");
FileWriter fr = new FileWriter(file, true);
BufferedWriter br = new BufferedWriter(fr);
PrintWriter pr = new PrintWriter(br);
pr.println("data");
pr.close();
br.close();
fr.close();

إلحاقه بملف في جافا باستخدام FileOutputStream

يجب عليك استخدام FileOutputStream لإلحاق البيانات بملف عندما تكون البيانات الخام، البيانات الثنائية، الصور، مقاطع الفيديو، وما إلى ذلك.

OutputStream os = new FileOutputStream(new File("append.txt"), true);
os.write("data".getBytes(), 0, "data".length());
os.close();

مثال على إضافة جافا إلى الملف

إليك البرنامج النهائي لإضافة جافا إلى الملف الذي يظهر جميع الخيارات المختلفة التي ناقشناها أعلاه.

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.io.PrintWriter;

public class JavaAppendToFile {

	/**
	 * Java append to file example
	 * 
	 * @param args
	 */
	public static void main(String[] args) {
		String filePath = "/Users/pankaj/Downloads/append.txt";

		String appendText = "This String will be appended to the file, Byte=0x0A 0xFF";

		appendUsingFileWriter(filePath, appendText);

		appendUsingBufferedWriter(filePath, appendText, 2);

		appendUsingPrintWriter(filePath, appendText);

		appendUsingFileOutputStream(filePath, appendText);
	}

	private static void appendUsingPrintWriter(String filePath, String text) {
		File file = new File(filePath);
		FileWriter fr = null;
		BufferedWriter br = null;
		PrintWriter pr = null;
		try {
			// لإضافة إلى الملف، تحتاج إلى تهيئة FileWriter باستخدام البناء الثاني الموجود أدناه
			fr = new FileWriter(file, true);
			br = new BufferedWriter(fr);
			pr = new PrintWriter(br);
			pr.println(text);
		} catch (IOException e) {
			e.printStackTrace();
		} finally {
			try {
				pr.close();
				br.close();
				fr.close();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
	}

	/**
	 * Use Stream for java append to file when you are dealing with raw data, binary
	 * data
	 * 
	 * @param data
	 */
	private static void appendUsingFileOutputStream(String fileName, String data) {
		OutputStream os = null;
		try {
			// الراية true أدناه تخبر OutputStream بأنها ستضيف
			os = new FileOutputStream(new File(fileName), true);
			os.write(data.getBytes(), 0, data.length());
		} catch (IOException e) {
			e.printStackTrace();
		} finally {
			try {
				os.close();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
	}

	/**
	 * Use BufferedWriter when number of write operations are more
	 * 
	 * @param filePath
	 * @param text
	 * @param noOfLines
	 */
	private static void appendUsingBufferedWriter(String filePath, String text, int noOfLines) {
		File file = new File(filePath);
		FileWriter fr = null;
		BufferedWriter br = null;
		try {
			// لإضافة إلى الملف، تحتاج إلى تهيئة FileWriter باستخدام البناء الثاني الموجود أدناه
			fr = new FileWriter(file, true);
			br = new BufferedWriter(fr);
			for (int i = 0; i < noOfLines; i++) {
				br.newLine();
				// يمكنك استخدام الطريقة write أو append
				br.write(text);
			}

		} 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 filePath
	 * @param text
	 * @param noOfLines
	 */
	private static void appendUsingFileWriter(String filePath, String text) {
		File file = new File(filePath);
		FileWriter fr = null;
		try {
			// يقرر الوسيط البنائي أدناه ما إذا كان يجب إضافة أو استبدال
			fr = new FileWriter(file, true);
			fr.write(text);

		} catch (IOException e) {
			e.printStackTrace();
		} finally {
			try {
				fr.close();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
	}

}

هذا كل شيء بالنسبة لإضافة إلى ملف في برنامج جافا.

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

المراجع:

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