GBK编码文本文件转为UTF-8编码方法

GBK编码文本文件转为UTF-8编码方法

GBK编码文本文件转为UTF-8编码方法

import java.io.*;
import java.util.LinkedHashMap;
import java.util.Set;

public class GBK2UTF8 {
    public static void GBK2UTF8(File file) throws IOException {
        //创建转换流对象
        InputStreamReader isr = new InputStreamReader(
                new FileInputStream(file),"GBK");
        //创建集合保存读取的数据
        LinkedHashMap<char[],Integer> map = new LinkedHashMap<char[], Integer>();
        //读取文件,并存储
        char[] chs = new char[1024];
        int len = 0;
        while ((len = isr.read(chs))!=-1){
            map.put(chs,len);
        }
        //释放资源
        isr.close();
        //创建转换输出流,清空文件,重新写入
        OutputStreamWriter osw = new OutputStreamWriter(
                new FileOutputStream(file),"UTF-8");
        Set<char[]> set = map.keySet();
        for (char[] chars : set) {
            Integer length = map.get(chars);
            osw.write(chars,0,length);
        }
        //释放资源
        osw.close();
    }
}

你可能感兴趣的:(Java,EE,Java,SE)