Java文本文件批量替換小程序的方法
經常有些文件中的一些內容需要批量替換,手動的用編輯器替換,只能針對單個文件,涉及多文件的時候,很費時間。下面小編準備了關于Java文本文件批量替換小程序的'方法,提供給大家參考!
由于有個web項目的字符集編碼原本使用gb2312,現在想改為utf-8編碼,項目下有很多的html,手動去修改相當麻煩,比較懶,于是就寫了如下的java程序對html文件中的charset=gb2312進行替換,替換為 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) {
// 以過濾器作為參數
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文本文件批量替換小程序的方法】相關文章:
Java程序學習方法05-29
Java程序編寫記事本方法大全11-08
簡單的Java程序編寫06-02
如何編譯java程序05-29
實現鼠標畫圖的Java程序10-25
微信小程序使用方法11-09
CAD查找和替換的方法05-25
java編寫即時聊天程序11-08
Java程序員必看的書籍07-21