Java批量转换文件夹中文件的编码(从gbk到utf8);
可以对网上下载的教程源码进行批量转码,一键搞定,生成新文件覆盖源文件
注意网上下载的源码包一般有class文件,一般只需要转码src文件夹即可
需要导入commons-io jar包
package wx.jq.util;
import java.io.File;
import java.io.IOException;
import java.util.Collection;
import org.apache.commons.io.FileUtils;
/**
* 文件夹中的文件批量从gbk编码转换为utf-8编码
* @author jiangqiang
* 2016年7月5日 上午11:24:24
*/
public class FileEncodeConverter {
private static String sourcePath = "C:/Users/jq/Desktop/weekend110-代码/weekend110/src";// 文件夹源路径
private static String destPath = sourcePath + "_copy";
public static void main(String[] args) throws IOException{
File sourceDirectory = new File(sourcePath);
File destDirectory = new File(destPath);
if (!sourceDirectory.isDirectory()) {
return;
}
// 获取文件夹中的所有.java文件,包括所有子级文件夹中的文件
Collection
files = FileUtils.listFiles(sourceDirectory, new String[] { "java", "JAVA" }, true);
for (File file : files) {
String absolutePath = file.getAbsolutePath();
String newDir = absolutePath.replace(sourceDirectory.getName(), destDirectory.getName());
// 把单个文件从gbk编码转化到utf-8编码,生成新文件,可以自动创建父级目录
FileUtils.writeLines(new File(newDir), "UTF-8", FileUtils.readLines(file, "GBK"));
}
// 删除源目录,子文件都删除
FileUtils.deleteQuietly(sourceDirectory);
// 把生成文件目录重命名成源目录名
destDirectory.renameTo(new File(sourceDirectory.getAbsolutePath()));
System.out.println("success");
}
}