java 文件编码转换

java 文件编码转换

应用场景:

windows下,java工程代码默认格式为gb2312;但是一些标准项目的编码格式通常为utf-8,逐个文件进行编码太繁琐,通过此类,可以将某个目录下的文件批量变更为utf-8格式,文件扩展名不限,默认为java;

代码:

import java.io.File;
import java.io.IOException;
import java.util.List;

import org.apache.commons.io.FileUtils;

/**
 * 文件编码转换
 * <pre>
 * windows下,java工程代码默认格式为gb2312;但是一些标准项目的编码格式通常为utf-8,逐个文件进行编码太繁琐,
 * 通过此类,可以将某个目录下的文件批量变更为utf-8格式,文件扩展名不限,默认为java;
 * </pre>
 * 
 * @author hury
 * @version 2017-11-14
 */
public class EncodingDetectTest {
    public static void main(String[] args) {
        // 源码路径
        String srcPath = "E:\\workspace";
        // 转为UTF-8编码格式源码路径
        String outPath = "D:\\test\\UTF8\\src";
        String fileExt = "java";
        encodeToUtf8(srcPath, outPath, fileExt);
    }

    /**
     * 将源码转换为utf-8
     * 
     * @param srcPath
     *            源码路径
     * @param outPath
     *            目标路径
     * @param fileExt
     *            文件扩展名
     */
    public static void encodeToUtf8(String srcPath, String outPath, String fileExt) {

        try {
            EncodingDetect.checkFolder(srcPath, fileExt);
            System.out.println(">>> 分析完成");

            // if(1==1) return;// debug
            for (String key : EncodingDetect.resultsMap.keySet()) {
                if (key.equalsIgnoreCase("UTF-8"))
                    continue;
                List<String> list = EncodingDetect.resultsMap.get(key);
                for (String path : list) {
                    File file = new File(path);
                    // UTF8格式文件路径
                    String utf8FilePath = outPath + file.getAbsolutePath().substring(srcPath.length());
                    System.out.println(key + "-> UTF-8\t:\t" + utf8FilePath);
                    // 使用原始格式读取文件,然后用UTF-8写入文件
                    FileUtils.writeLines(new File(utf8FilePath), "UTF-8", FileUtils.readLines(file, key));
                }
            }
            System.out.println(">>> 转码完成");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

源码地址:

http://download.csdn.net/download/huryer/10117809

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值