java 指定编码读写文件,下面的案例我用gb2312读取文件,然后再用utf-8写入文件,实现批量文件转换编码,需要注意的是,查看html文件编码不能用编辑器,一般的编辑器会charset来指定编码。
public static void convert(String path){
try {
File fileDir = new File(path);
File[] files = fileDir.listFiles();
for(File file:files){
String filePath=file.getPath();
if(file.isDirectory()){
convert(filePath);
}else{
String fileName=file.getName();
if(fileName.endsWith("html")){
FileInputStream is =new FileInputStream(file);
InputStreamReader fr=new InputStreamReader(is,"gb2312");
BufferedReader reader=new BufferedReader(fr);
StringBuffer sb=new StringBuffer();
String str="";
while ((str=reader.readLine())!=null){
sb.append(str+"\r\n");
}
reader.close();
fr.close();
is.close();
file.delete();
String content=sb.toString();
System.out.println(content);
OutputStream osw=new FileOutputStream(filePath);
OutputStreamWriter os=new OutputStreamWriter(osw,"utf-8");
BufferedWriter bw=new BufferedWriter(os);
bw.write(content);
bw.close();
os.close();
osw.close();
}
}
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}