Java文本文件批量替換小程序的方法
經(jīng)常有些文件中的一些內(nèi)容需要批量替換,手動(dòng)的用編輯器替換,只能針對(duì)單個(gè)文件,涉及多文件的時(shí)候,很費(fèi)時(shí)間。下面小編準(zhǔn)備了關(guān)于Java文本文件批量替換小程序的'方法,提供給大家參考!
由于有個(gè)web項(xiàng)目的字符集編碼原本使用gb2312,現(xiàn)在想改為utf-8編碼,項(xiàng)目下有很多的html,手動(dòng)去修改相當(dāng)麻煩,比較懶,于是就寫(xiě)了如下的java程序?qū)tml文件中的charset=gb2312進(jìn)行替換,替換為 charset=utf-8。(注:Dreamweaver 可以批量替換)
代碼如下:
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileFilter;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.io.UnsupportedEncodingException;
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) {
// 只處理:目錄 或是 .html文件
if (pathname.isDirectory()
|| (pathname.isFile() && pathname.getName().endsWith(
".html"))) {
return true;
} else {
return false;
}
}
};
public static void readDir(File file) {
// 以過(guò)濾器作為參數(shù)
File[] files = file.listFiles(filter);
for (File subFile : files) {
// 處理目錄
if (subFile.isDirectory()) {
readDir(subFile);
}
// 處理文件
else {
System.err.println(" 源文件:\t" + subFile.getAbsolutePath());
System.err.println("---------------------------");
try {
replace(subFile.getAbsolutePath(), srcStr, desStr);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
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 + ".tmp");
PrintWriter out = new PrintWriter(new BufferedWriter(
new OutputStreamWriter(new FileOutputStream(outfile), "utf-8")));
String reading;
while ((reading = in.readLine()) != null) {
out.println(reading.replaceAll(from, to));
}
out.close();
in.close();
infile.delete();
outfile.renameTo(infile);
}
public static void main(String[] args) {
File srcFile = new File(srcDir);
readDir(srcFile);
srcFile = null;
}
}
【Java文本文件批量替換小程序的方法】相關(guān)文章:
Java程序?qū)W習(xí)方法05-29
Java程序編寫(xiě)記事本方法大全11-08
如何編譯java程序05-29
實(shí)現(xiàn)鼠標(biāo)畫(huà)圖的Java程序10-25
微信小程序使用方法11-09
CAD查找和替換的方法05-25
Java程序員必看的書(shū)籍07-21