文件或文件夹转码:gbk转utf-8

基于上次的io流遍历文件夹升级了一个gbk转utf-8的方法:

把路径换成你要转换的文件或者文件夹,该文件或文件夹的所有GBK编码的文件就会变成UTF-8编码
如果想u8->gbk 只需把代码中的两个编码名称调换位置即可

public static void main(String[] args) {
	
        File dir= new File("E:\\aaa\\bbb);

        fileList(dir);

    }
    
    // 遍历文件方法

    public static void fileList(File file) {

        File rootFile = file;

        File[] files = rootFile.listFiles();

        if (files != null) {

            for (File f : files) {

                if (!f.isDirectory()) {

                    codeConvert(f);

                }

                System.out.println(f.getPath());
				// 递归调用子文件夹下的文件
                fileList(f);

            }

        }

    }


//转码方法
    public static void codeConvert(File file) {

        try {

            BufferedReader br = new BufferedReader(new InputStreamReader

                    (new FileInputStream(file), Charset.forName("GBK")));

            StringBuilder sb = new StringBuilder();

            String str;

            while ((str = br.readLine()) != null) {

                sb.append(str);

                sb.append("\n");

            }

            BufferedWriter bw = new BufferedWriter(new OutputStreamWriter

                    (new FileOutputStream(file), Charset.forName("UTF-8")));

            bw.write(sb.toString());

            bw.flush();

            bw.close();

        } catch (Exception e) {

            e.printStackTrace();

        }

    }

你可能感兴趣的:(Others)