Java 追加文件内容

今天我们将探讨如何在Java中向文件追加内容。在Java中,文件追加是一种常见的IO操作。例如,每当我们向服务器日志中打印内容时,它会被追加到现有文件中。

使用Java将内容追加到文件中。

我们可以使用以下类来在Java中追加到文件。

    1. 使用Java的FileWriter向文件追加内容

 

    1. 使用Java的BufferedWriter向现有文件追加内容

 

    1. 使用PrintWriter向文件追加文本

 

    使用FileOutputStream向文件追加内容的Java方法
java append to file

使用FileWriter将内容追加到Java文件中。

这个是使用FileWriter在Java中进行文件追加的短程序。稍后我们将会演示一个完整的Java文件追加示例程序。

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

使用BufferedWriter将内容追加到现有文件中的Java实现

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将文本追加到文件中。

在Java中,我们还可以使用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在Java中附加到文件

当数据是原始数据、二进制数据、图像、视频等时,你应该使用FileOutputStream来追加数据到文件中。

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

Java写文件附加例子

这是最终的Java追加到文件程序,展示了我们上述讨论的所有不同选项。

package com.Olivia.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/scdev/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 {
			// to append to file, you need to initialize FileWriter using below constructor
			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 {
			// below true flag tells OutputStream to append
			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 {
			// to append to file, you need to initialize FileWriter using below constructor
			fr = new FileWriter(file, true);
			br = new BufferedWriter(fr);
			for (int i = 0; i < noOfLines; i++) {
				br.newLine();
				// you can use write or append method
				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 {
			// Below constructor argument decides whether to append or override
			fr = new FileWriter(file, true);
			fr.write(text);

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

}

这就是关于Java程序追加文件的内容了。

你可以在我们的GitHub代码库中找到更多的Java IO示例。

參考文獻:

  • PrintWriter API Doc
  • FileWriter API Doc
  • BufferedWriter API Doc
  • FileOutputStream API Doc
发表回复 0

Your email address will not be published. Required fields are marked *


广告
将在 10 秒后关闭
bannerAds