GBK 和 UTF8 转码
2015-12-04 10:10
218 查看
GBK 转 UTF8 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; /** * @author Administrator * */ public class GBKtoUTF8ConvertEncoding { public static void main(String[] args) throws Exception { String srcDir = "C:\\WorkPlace\\Ebuy_20141217\\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); } } } } }
UTF8 转 GBK
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; /** * @author Administrator * */ public class UTF8toGBKConvertEncoding { public static void main(String[] args) throws Exception { <span style="white-space:pre"> </span> String srcDir = "C:\\WorkPlace\\MYS2SH\\src\\com\\test\\cccccc";// List<String> files = new ArrayList<String>(); fetchFileList(srcDir, files, ".java"); for(String fileName : files){ convert(fileName,"UTF-8", fileName, "GBK");// } } 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), "utf8")); 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); } } } } }
相关文章推荐
- [LeetCode]97. Reorder List链表重排序
- JAVABEAN必须继承序列化借口的作用
- Android编程实现PendingIntent控制多个闹钟的方法
- (3)websocket实现单聊和群聊
- setup_docker_network.sh
- '调用K3组件反审核单据
- openstack 平台搭建
- 使用SQL如何把用逗号等字符隔开的字符串转换成列表
- oracle客户端NLS_LANG的设置
- android(1)(四种点击事件)
- CGAL计算几何库配置步骤
- Java学习笔记(十三):为什么要使用单例模式
- AngularJS与RequireJS集成方案
- linux awk命令详解(一) awk语法 awk运算 awk数组
- 解决XCode7.1 上无法安装 Alcatraz PackageManager
- 普通PC安装MAC
- java必学必会之this关键字
- java.lang.ClassNotFoundException: org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFil
- spring aop源码分析
- 在OpenCV中图像边界扩展 copyMakeBorder 的实现