import java.io.File;
import java.io.FileInputStream;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.List;
public class ProjectCharsetChange {
public static void main(String[] args) {
changeProjectCharset("D:\\newgitlib\\InsurePublicApi\\src", "GBK", "UTF-8");
}
public static void changeProjectCharset(String projectPath, String readCharset, String writeCharset){
List<File> list = getFiles(new File(projectPath));
for (File file : list) {
try {
FileInputStream fi = new FileInputStream(file);
StringBuilder sb = new StringBuilder();
int len = fi.available();
byte b[] = new byte[len];
while(fi.read(b)!=-1){
sb.append(new String(b,readCharset));
}
PrintWriter pw = new PrintWriter(file,writeCharset);
pw.write(sb.toString());
pw.close();
} catch (Exception e) {
}
}
}
private static List<File> getFiles(File direct){
List<File> list = new ArrayList<>();
File files[] = direct.listFiles();
if(files!=null){
for (File file : files) {
if(file.isDirectory()){
List<File> subfiles = getFiles(file);
list.addAll(subfiles);
}else{
list.add(file);
}
}
}
return list;
}
}