之前工作空间的默认编码格式为GBK,现在改为了UTF-8,好多程序的中文内容显示都有了bug,随便写了一个小程序,用来批量进行转码.可能有部分不完善的地方,但基本的转码功能已经实现了.
可以参考一下
package 更改编码;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
public class 更改编码 {
public static void main(String[] args) throws IOException {
File file = new File("此处填写源文件夹");
File file_copy = new File("此处为转码之后输出文件夹");
if (!file_copy.exists()) {
file_copy.mkdirs();
}
// System.out.println(file.getAbsolutePath());
File[] files = file.listFiles();
System.out.println(files[0]);
for (File f : files) {
//只会修改文件的编码,遇到文件夹并不会递归遍历
if(!f.isFile()) {
System.out.println("不是文件");
return;
}
InputStreamReader isr = new InputStreamReader(new FileInputStream(f), "此处为原本的文件编码,如GBK");
File filenew =new File(file_copy, f.getName());
System.out.println(filenew);
if(!filenew.exists()) {
filenew.createNewFile();
}
FileOutputStream fos = new FileOutputStream(filenew);
OutputStreamWriter osw = new OutputStreamWriter(fos, "此处为想转换的目标编码格式,如utf-8");
int len = 0;
char[] c = new char[1024];
while ((len = isr.read(c)) > 0) {
osw.write(c, 0, len);
}
isr.close();
osw.close();
}
}
}