Java文本文件批量替换小程序的方法
经常有些文件中的一些内容需要批量替换,手动的用编辑器替换,只能针对单个文件,涉及多文件的时候,很费时间。下面小编准备了关于Java文本文件批量替换小程序的方法,提供给大家参考!
由于有个web项目的字符集编码原本使用gb2312,现在想改为utf-8编码,项目下有很多的html,手动去修改相当麻烦,比较懒,于是就写了如下的java程序对html文件中的charset=gb2312进行替换,替换为 charset=utf-8。(注:Dreamweaver 可以批量替换)
代码如下:
import eredReader;
import eredWriter;
import ;
import Filter;
import InputStream;
import OutputStream;
import ception;
import tStreamReader;
import utStreamWriter;
import tWriter;
import pportedEncodingException;
public class ContextReplace {
private static String srcStr = "charset=gb2312";
private static String desStr = "charset=utf-8";
private static String srcDir = "f:test";
private static FileFilter filter = new FileFilter() {
public boolean accept(File pathname) {
// 只处理:目录 或是 文件
if (rectory()
|| (le() && ame()With(
""))) {
return true;
} else {
return false;
}
}
};
public static void readDir(File file) {
// 以过滤器作为参数
File[] files = Files(filter);
for (File subFile : files) {
// 处理目录
if (rectory()) {
readDir(subFile);
}
// 处理文件
else {
tln(" 源文件:t" + bsolutePath());
tln("---------------------------");
try {
replace(bsolutePath(), srcStr, desStr);
} catch (UnsupportedEncodingException e) {
tStackTrace();
} catch (IOException e) {
tStackTrace();
}
}
}
}
public static void replace(String infilename, String from, String to)
throws IOException, UnsupportedEncodingException {
File infile = new File(infilename);
BufferedReader in = new BufferedReader(new InputStreamReader(
new FileInputStream(infile), "utf-8"));
File outfile = new File(infile + "");
PrintWriter out = new PrintWriter(new BufferedWriter(
new OutputStreamWriter(new FileOutputStream(outfile), "utf-8")));
String reading;
while ((reading = Line()) != null) {
tln(aceAll(from, to));
}
e();
e();
te();
meTo(infile);
}
public static void main(String[] args) {
File srcFile = new File(srcDir);
readDir(srcFile);
srcFile = null;
}
}