Java如何附加内容到文件呢?
Java操作文件是我们常用的操作,下文讲述如何附加内容到文件的方法分享,如下所示:
java附加文件的操作有以下几种方式:
- 使用
FileWriter
附加内容到文件; - 使用
BufferedWriter
将内容附加到文件; - 使用
PrintWriter
将文本附加内容到文件; - 使用
FileOutputStream
附加内容到文件;
注意事项:
处理文本文件,笔者建议使用FileWriter,当写入数据量大时,建议使用BufferedWriter
处理二进制文件,建议使用FileOutputStream
方式一: 使用FileWriter附加到文件
例:
File file = new File("java265.txt");
FileWriter fr = new FileWriter(file, true);
fr.write("the website is Java265.txt");
fr.close();
方式二: 使用BufferedWriter
将内容附加到现有文件
File file = new File("java265.txt");
FileWriter fr = new FileWriter(file, true);
BufferedWriter br = new BufferedWriter(fr);
br.write("the website is Java265.txt");
br.close();
fr.close();
方式三: 使用PrintWriter将文本附加内容到文件
File file = new File("java265.txt");
FileWriter fr = new FileWriter(file, true);
BufferedWriter br = new BufferedWriter(fr);
PrintWriter pr = new PrintWriter(br);
pr.println("the website is Java265.txt");
pr.close();
br.close();
fr.close();
方式四: 使用FileOutputStream追加到文件
当原始数据,二进制数据,图像,视频等应该使用FileOutputStream
将数据附加到文件中
OutputStream os = new FileOutputStream(new File("java265.txt"), true);
os.write("the website is Java265.txt".getBytes(), 0, "the website is Java265.txt".length());
os.close();
例:Java附加到文件
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 testClass{
/**
* 将内容附加到文件的示例
*
* @param args
*/
public static void main(String[] args) {
String filePath = "D:/tmp/java265.txt";
String appendText = "the website is java265.com";
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();
}
}
}
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();
}
}
}
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();
// 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();
}
}
}
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();
}
}
}
}
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。