import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
public class CharSetChangeUtil {
//使用示例,从utf-16转换为utf-8
public static void main(String[] args) {
File file = new File("D:\\user\\Developer08\\DBSource");
String charSetFrom = "utf-16";
String charSetTo = "utf-8";
change(file, charSetFrom, charSetTo);
}
/**
* @param f 文件目录或文件
* @param charSetFrom 原编码格式
* @param charSetTo 转换后编码格式
*/
public static void change(File f, String charSetFrom, String charSetTo) {
if (f.isDirectory()) {
for (File file: f.listFiles()) {
change(file, charSetFrom, charSetTo);
}
return;
}
try {
InputStreamReader input = new InputStreamReader(new FileInputStream(f),charSetFrom);
BufferedReader bReader = new BufferedReader(input);
StringBuilder sb = new StringBuilder();
String s = "";
while ((s =bReader.readLine()) != null) {
sb.append(s + "\n");
}
bReader.close();
String str = sb.toString();
PrintWriter out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(new FileOutputStream(f),charSetTo)));
out.append(str);
out.flush();
out.close();
System.out.println(f.getName() +"转换格式成功");
} catch (Exception e) {
System.out.println(f.getName() +"转换格式出错");
}
}
}