因爲本身的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]---工具