java批量转换文件字符编码

package cn.com.pubinfo.ekt.action.admin;

import java.io.BufferedReader;
import java.io.DataInputStream;
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.Writer;
import java.util.ArrayList;
import java.util.List;

public class TransCodeFile {

/**
* 存储java文件路径
*/
private static List<String> list = new ArrayList<String>();

public static void main(String[] args) {
String packageName = "D:/work/code/2014_ektedu/src";

getName(packageName);

try {
for (int i = 0; i < list.size(); i++) {
transferFile(list.get(i), list.get(i));
}
} catch (Exception e) {
e.printStackTrace();
}

}

/**
* 往list添加path目录下的java文件
* @param path
*/
public static void getName(String path) {
File file = new File(path);
if (file.isDirectory()) {
File[] dirFile = file.listFiles();
for (File f : dirFile) {
if (f.isDirectory())
getName(f.getAbsolutePath());
else {
if (f.getName().endsWith(".java")) {
list.add(f.getAbsolutePath());
}
}
}
}
}

/**
* 文件编码转换
* @param srcFileName
* @param destFileName
* @throws IOException
*/
private static void transferFile(String srcFileName, String destFileName)
throws IOException {
String line_separator = System.getProperty("line.separator");
FileInputStream fis = new FileInputStream(srcFileName);
StringBuffer content = new StringBuffer();
DataInputStream in = new DataInputStream(fis);
BufferedReader d = new BufferedReader(
new InputStreamReader(in, "utf-8"));// , "UTF-8"
String line = null;
while ((line = d.readLine()) != null)
content.append(line + line_separator);
d.close();
in.close();
fis.close();

Writer ow = new OutputStreamWriter(new FileOutputStream(destFileName),
"GBK");
ow.write(content.toString());
ow.close();
}
}

posted @ 2015-01-29 14:01  空军一号1  阅读(230)  评论(0编辑  收藏  举报