Java文件追加内容完全指南:方法与代码示例
今天我们将探讨如何在Java中向文件追加内容。在Java中,文件追加是一种常见的IO操作。例如,每当我们向服务器日志中打印内容时,它会被追加到现有文件中。
使用Java将内容追加到文件中
我们可以使用以下类来在Java中追加到文件:
- 使用Java的FileWriter向文件追加内容
- 使用Java的BufferedWriter向现有文件追加内容
- 使用PrintWriter向文件追加文本
- 使用FileOutputStream向文件追加内容的Java方法

使用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追加到文件示例
*
* @param args
*/
public static void main(String[] args) {
String filePath = "/Users/scdev/Downloads/append.txt";
String appendText = "这个字符串将被追加到文件中,字节=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();
}
}
}
/**
* 当处理原始数据、二进制数据时,使用流进行Java文件追加
*
* @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();
}
}
}
/**
* 当写入操作较多时使用BufferedWriter
*
* @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();
}
}
}
/**
* 当写入操作较少时使用FileWriter
*
* @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程序追加文件的内容了。
你可以在我们的GitHub代码库中找到更多的Java IO示例。
参考文献:
- PrintWriter API文档
- FileWriter API文档
- BufferedWriter API文档
- FileOutputStream API文档