Java הוסף לקובץ

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

להוסיף לקובץ ב-Java

ניתן להוסיף לקובץ ב-Java באמצעות המחלקות הבאות.

  1. להוסיף לקובץ ב-Java באמצעות FileWriter
  2. להוסיף תוכן לקובץ קיים ב-Java באמצעות BufferedWriter
  3. להוסיף טקסט לקובץ ב-Java באמצעות PrintWriter
  4. להוסיף לקובץ ב-Java באמצעות FileOutputStream

אם אתה עובד עם נתוני טקסט ומספר הפעולות הכתיבה נמוך, יש להשתמש ב-FileWriter ולהשתמש בבנאי שלו עם ערך דגל ההוספה כ-true. אם מספר הפעולות הכתיבה גדול, יש להשתמש ב-BufferedWriter. כדי להוסיף נתונים בינאריים או נתוני זרם גולמיים לקובץ קיים, יש להשתמש ב-FileOutputStream.

להוסיף לקובץ ב-Java באמצעות FileWriter

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

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

Java הוספת תוכן לקובץ קיים באמצעות 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();

הוספת טקסט לקובץ ב-Java באמצעות PrintWriter

ניתן גם להשתמש ב-PrintWriter כדי להוסיף לקובץ ב-Java.

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();

הוספה לקובץ ב-Java באמצעות FileOutputStream

עליך להשתמש ב-FileOutputStream כדי להוסיף נתונים לקובץ כשהם נתונים גולמיים, נתונים בינאריים, תמונות, וידאו וכו'.

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

דוגמה להוספת קובץ Java

כאן תוכנית סופית להוספת קובץ 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.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 למטה אומר לפלט המשתנה להוסיף
			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();
				// אתה יכול להשתמש בפעולת הכתיבה או 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.

ניתן לבדוק דוגמאות נוספות של קלט/פלט ב-Java ב- מאגר הקוד שלנו ב-GitHub.

מקורות:

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