import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.io.RandomAccessFile;
import java.io.OutputStreamWriter;
import java.io.File;
import java.io.FileOutputStream;
import java.lang.*;
/******************************
* 写文本
* java.lang.Object
|-java.io.Writer
|-java.io.OutputStreamWriter
|-java.io.FileWriter
* java.lang.Object
|-java.io.Writer
|-java.io.BufferedWriter
* 写二进制
* java.lang.Object
|-java.io.OutputStream
|-java.io.FileOutputStream
*******************************/
/**
* 将内容追加到文件尾部
*/
public class AppendToFile {
/**
* A方法追加文件:使用RandomAccessFile
* @param fileName 文件名
* @param content 追加的内容
* note:适用于二进制文件,不支持中文字符
*/
public static void appendMethodBytes(String fileName,String content){
try {
// 打开一个随机访问文件流,按读写方式
RandomAccessFile randomFile = new RandomAccessFile(fileName, "rw");
// 文件长度,字节数
long fileLength = randomFile.length();
//将写文件指针移到文件尾。
randomFile.seek(fileLength);
randomFile.writeBytes(content);
randomFile.close();
} catch (IOException e){
e.printStackTrace();
}
}
/**
* B方法追加文件:使用FileWriter
* @param fileName
* @param content
* note:适用于文本文件
*/
public static void appendMethodChrs(String fileName, String content){
try {
//打开一个写文件器,构造函数中的第二个参数true表示以追加形式写文件
FileWriter writer = new FileWriter(fileName, true);
writer.write(content);
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* 按指定charset追加文本文件,使用BufferedWriter
* @param fileName
* @param content
* @param charset
*/
public static void appendMethodCharset(String fileName,String content,String charset)
{
try {
//FileOutputStream构造函数中的第二个参数true表示以追加形式写文件
Buffered