近期整理资料时发现许多文件都是 ANSI 字符编码的,用 UTF-8 编码方式打开出现中文乱码,文件散放在不同的文件夹中,于是就想着用 Java 批量转换一下,现将实现方式作一个记录。
运行环境
操作系统:Windows 10
Java环境:JDK-17
具体代码
package util;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.nio.charset.Charset;
import java.util.SortedMap;
/**
* 此类用于转换文件的字符编码
*/
public class ConvertCharset {
public static void main(String[] args) {
File dir = new File("D:\\Test");
String format = ".java";
String csName = "UTF-8";
convert(dir, format, csName);
listCharsetName();
}
/**
* 将指定文件夹的 所有文件 全部转为 UTF-8 编码
*
* @param dir 待转换文件所在的文件夹
*/
public static void convert(File dir) {
convert(dir, "", "UTF-8");
}
/**
* 将指定文件夹的 指定格式文件 全部转为指定编码
*
*