文件编码转换工具类

来源:互联网 发布:淘宝福利秀 编辑:程序博客网 时间:2024/06/04 18:36
package zzzz;import java.io.BufferedReader;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStreamReader;import java.io.OutputStreamWriter;import java.io.UnsupportedEncodingException;import java.io.Writer;import java.util.ArrayList;import java.util.List;import java.util.regex.Matcher;import java.util.regex.Pattern;public class ConverEncoding {public static void main(String[] args) throws Exception {String srcDir = "D:\\Android\\例子源码\\EnjoyMusic(音乐播放器)\\EnjoyMusic\\src";List<String> files = new ArrayList<String>();fetchFileList(srcDir, files, ".java");for (String fileName : files) {convert(fileName, "GBK", fileName, "UTF-8");}}public static void convert(String oldFile, String oldCharset,String newFlie, String newCharset) {BufferedReader bin;FileOutputStream fos;StringBuffer content = new StringBuffer();try {System.out.println(oldFile);bin = new BufferedReader(new InputStreamReader(new FileInputStream(oldFile), "gbk"));String line = null;while ((line = bin.readLine()) != null) {// System.out.println("content:" + content);content.append(line);content.append(System.getProperty("line.separator"));}bin.close();File dir = new File(newFlie.substring(0, newFlie.lastIndexOf("\\")));if (!dir.exists()) {dir.mkdirs();}fos = new FileOutputStream(newFlie);Writer out = new OutputStreamWriter(fos, newCharset);out.write(content.toString());out.close();fos.close();} catch (UnsupportedEncodingException e) {e.printStackTrace();} catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}}public static void fetchFileList(String strPath, List<String> filelist,final String regex) {File dir = new File(strPath);File[] files = dir.listFiles();Pattern p = Pattern.compile(regex);if (files == null)return;for (int i = 0; i < files.length; i++) {if (files[i].isDirectory()) {fetchFileList(files[i].getAbsolutePath(), filelist, regex);} else {String strFileName = files[i].getAbsolutePath().toLowerCase();Matcher m = p.matcher(strFileName);if (m.find()) {filelist.add(strFileName);}}}}}

0 0
原创粉丝点击