package zhch.illq.util; import java.io.File; import java.io.IOException; import java.io.UnsupportedEncodingException; import org.apache.commons.io.FileUtils; /** * @author * @version 1.0 * @since 1.0 */ public class EncodeChange { public void change(String srcDir) throws IOException { change(srcDir, "gbk", "utf-8", null); } public void change(String srcDir, String filetype) throws IOException { change(srcDir, "gbk", "utf-8", filetype); } public void change(String srcDir, String fromEncoding, String toEncoding) throws IOException { File src = new File(srcDir); change(src, fromEncoding, toEncoding, null); } public void change(String srcDir, String fromEncoding, String toEncoding, String filetype) throws IOException { File src = new File(srcDir); change(src, fromEncoding, toEncoding, filetype); } public void change(File src, String fromEncoding, String toEncoding, String filetype) throws IOException { if (src.isFile()) { changeFile(fromEncoding, toEncoding, filetype, src); return; } File[] files = src.listFiles(); for (File file : files) { if (file.isFile()) { changeFile(fromEncoding, toEncoding, filetype, file); } else if (file.isDirectory()) { change(file, fromEncoding, toEncoding, filetype); } } } /** * * @param fromEncoding * @param toEncoding * @param filetype * @param file * @throws IOException */ private void changeFile(String fromEncoding, String toEncoding, String filetype, File file) throws IOException { String filename = file.getName(); String type = ""; if (filename.indexOf('.') != -1) { type = filename.substring(filename.lastIndexOf('.') + 1); } if (filetype == null || filetype.equals(type)) { String content = FileUtils.readFileToString(file, fromEncoding); FileUtils.writeStringToFile(file, content, toEncoding); } } public void changeCode(String str, String codeFrom, String codeTo) throws UnsupportedEncodingException { System.out.println(new String(str.getBytes(codeFrom), codeTo)); } /** * * @param args * @throws IOException */ public static void main(String[] args) throws IOException { EncodeChange ec = new EncodeChange(); // ec.change("d:\\temp\\javac\\"); ec.change("d:\\workspace\\AloneLogin", "java"); System.out.println("o le="); } }