今天我們將探討在Java中如何附加到文件。Java附加到文件是一個常見的Java IO操作。例如,每當我們將某些內容打印到伺服器日誌時,它都會附加到現有文件中。
Java附加到文件
我們可以使用以下類別在Java中附加到文件。
- 使用
FileWriter
在Java中附加到文件 - 使用
BufferedWriter
在Java中附加內容到現有文件 - 在Java中使用
PrintWriter
將文本附加到文件 - 在Java中使用
FileOutputStream
附加到文件
如果您正在處理文本數據且寫操作較少,請使用FileWriter,並使用其帶有附加標誌值的構造函數,如
true
。如果寫操作數量龐大,應使用BufferedWriter。要將二進制或原始流數據附加到現有文件,應使用FileOutputStream。
使用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();
使用PrintWriter
在Java中向文件追加文本
我们还可以使用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();
使用FileOutputStream
在Java中追加到文件
当处理原始数据、二进制数据、图像、视频等时,应使用FileOutputStream来追加数据到文件。
OutputStream os = new FileOutputStream(new File("append.txt"), true);
os.write("data".getBytes(), 0, "data".length());
os.close();
Java append to file example
這是最終的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標誌告訴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程序中追加到文件的全部內容。
您可以從我們的GitHub存儲庫中查看更多Java IO示例。
參考資料:
Source:
https://www.digitalocean.com/community/tutorials/java-append-to-file