將批量的gbk的亂碼文件轉換到utf8

因爲本身的eclipse設置時UTF8,導入別人寫的代碼,全是亂碼。java

在eclipse下又發現不了gbk,因而寫了個工具轉換。app

不支持目錄迭代eclipse

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

相關文章
相關標籤/搜索