目前在网上很多人用 FilterWriter来写文件, 但是 FilterWriter 不能指定编码格式, 导致编码问题,
有些人换成 BufferedWriter 来写文件, 可以指定构建时的编码, 但是又不知道怎么追加到文件尾.
因此, 今天把本人工作中用到的代码整理后归纳二式方式, 供大家参考.
同时以多线程同时读/写同一个文件, 边写,边读, 以下是完整代码:
package com.test;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.ByteArrayInputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
/**
* 指定编码格式,并且以追加的方式写入文件,并且线程同步读取文件
* @author guishuanglin 2019-09-20
*
*/
public class ReadWriteFile {
private Log logger = LogFactory.getLog(this.getClass());
//线程是否在运行
private static boolean isRuning = false;
public static void main(String[] args) {
ReadWriteFile ff = new ReadWriteFile();
ff.runThread();
}
/**
* 运行处理线程,如果已经运行,则不再重复运行.
*/
private vo