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(); } }