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

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

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

不支持目录迭代

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]---

你可能感兴趣的:(java,utf-8)