将批量的gbk的乱码文件转换到utf8

  1. 2. 工具代码(不支持目录迭代)

由于自己的eclipse设置时UTF8,导入别人写的代码,全是乱码。

在eclipse下又发现不了gbk,于是写了个工具转换。

2. 工具代码(不支持目录迭代)

package com.niewj.util;  
import java.io.BufferedReader;  
import java.io.File;  
import java.io.FileInputStream;  
import java.io.FileOutputStream;  
import java.io.IOException;  
import java.io.InputStreamReader;  
import java.io.OutputStreamWriter;  
import java.io.PrintWriter;  

/** 
 * 将gbk的代码放到srcDir之下,转码置destDir之下,暂不支持srcDir之下有目录,有需要再添加 
 * @author niewj 
 * @2012-6-1 
 */  
public class UTF8Parser {  

    /** 
     * @author niewj 
     * @since 2012-6-1  
     */  
    static File srcDir = new File("D:/prj/java/niewj_oy/eclipse_swt_src/src/swt/");  
    static File  destDir= new File("D:/prj/java/niewj_oy/eclipse_swt_src/src/swt_cp/");  

    public static void main(String[] args) {  
        //1.判断是目录  
        if(!srcDir.isDirectory()){  
            return;  
        }  
        //2.遍历所有目录  
        File[] fs = srcDir.listFiles();  

        //创建目标目录  
        if(!destDir.exists()){  
            destDir.mkdirs();  
        }  

        try {  
            new UTF8Parser().parse(fs);  
        } catch (IOException e) {  
            e.printStackTrace();  
        }  
    }  

    /** 
     * 目录就迭代遍历;文件就重编码 
     * @author niewj 
     * @since 2012-6-1  
     */  
    private void parse(File[] fs) throws IOException {  
        for(File file:fs){  
            if(!file.isDirectory()){  
                File destFile = new File(destDir,file.getName());  
                parse2UTF_8(file,destFile);  
            }else{  
                parse(file.listFiles());  
            }  
        }  
    }  

    /** 
     * @author niewj 
     * @since 2012-6-1  
     */  
    private void parse2UTF_8(File file,File destFile) throws IOException {  
        StringBuffer msg = new StringBuffer();  
        //读写对象  
        PrintWriter ps = new PrintWriter(new OutputStreamWriter(new FileOutputStream(destFile,false),"utf8"));  
        BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(file),"gbk"));  

        //读写动作  
        String line = br.readLine();  
        while(line!=null){  
            msg.append(line).append("\r\n");  
            line = br.readLine();  
        }  
        ps.write(msg.toString());  
        br.close();  
        ps.flush();  
        ps.close();  
    }  

}  

—[2012-06-01]—


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 hi@niewj.com

×

喜欢就点赞,疼爱就打赏