java 指定编码读写文件 实现批量文件转换编码

java | 2019-09-13 10:02:39

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

登录后即可回复 登录 | 注册
    
关注编程学问公众号