本篇随笔主要介绍了一个用java语言写的将一个文件编码转换为另一个编码并不改变文件内容的工具类:

    通过读取源文件内容,用URLEncoding重新编码解码的方式实现。

      

 1 public class ChangeFileEncoding {2     public static int fileCount = 0;3     public static String sourceFileRoot = "替换为要转换的源文件或源目录"; // 将要转换文件所在的根目录4     public static String sourceCharset = "GB2312"; // 源文件编码5     public static String targetCharset = "utf8"; // 目标文件编码6     public static void main(String[] args) throws IOException {7         File fileDir = new File(sourceFileRoot);8         convert(fileDir);9         System.out.println("Total Dealed : " + fileCount + "Files");
10     }
11
12     public static void convert(File file) throws IOException {
13         // 如果是文件则进行编码转换,写入覆盖原文件
14         if (file.isFile()) {
15             // 只处理.java结尾的代码文件
16             if (file.getPath().indexOf(".java") == -1) {
17                 return;
18             }
19             InputStreamReader isr = new InputStreamReader(new FileInputStream(
20                     file), sourceCharset);
21             BufferedReader br = new BufferedReader(isr);
22             StringBuffer sb = new StringBuffer();
23             String line = null;
24             while ((line = br.readLine()) != null) {
25                 // 注意写入换行符
26                 line =  URLEncoder.encode(line, "utf8");
27                 sb.append(line + "\r\n");//windows 平台下 换行符为 \r\n
28             }
29             br.close();
30             isr.close();
31
32             File targetFile = new File(file.getPath());
33             OutputStreamWriter osw = new OutputStreamWriter(
34                     new FileOutputStream(targetFile), targetCharset);
35             BufferedWriter bw = new BufferedWriter(osw);
36             // 以字符串的形式一次性写入
37             bw.write(URLDecoder.decode(sb.toString(), "utf8"));
38             bw.close();
39             osw.close();
40
41             System.out.println("Deal:" + file.getPath());
42             fileCount++;
43         } else {
44             //利用递归对目录下的每个以.java结尾的文件进行编码转换
45             for (File subFile : file.listFiles()) {
46                 convert(subFile);
47             }
48         }
49     }
50
51 }

转载于:https://www.cnblogs.com/ChoviWu/p/ChoviWu.html

【转载】Java文件编码自动转换工具类相关推荐

  1. java 文件编码转码工具类

    java 文件编码转码工具类 一.描述        文件编码转码,GBK编码的文件转为UTF-8编码的文件. 二.代码实现 package com.lanshen.utils.lsjavaUtils ...

  2. JAVA 文件上传下载工具类

    JAVA 文件上传下载工具类 import lombok.extern.slf4j.Slf4j; import org.apache.commons.io.FileUtils; import org. ...

  3. java常用地图坐标系转换工具类,支持谷歌,腾讯,百度等主流的地理坐标转换

    package com.shen.springboot.redis.util;import java.util.ArrayList; import java.util.HashMap; import ...

  4. Java(35):Java Base64编码和解码工具类

    Java Base64编码和解码工具类 Base64Util工具类: package com.ciphergateway.utils; import java.io.UnsupportedEncodi ...

  5. html utf8转换工具,GB/BIG5/UTF-8 文件编码批量转换工具

    GB/BIG5/UTF-8 文件编码批量转换工具是一款单一文件与批量转换编码工具将 GB.BIG5.UTF-8 文件相互转换,方便的批量处理能力,主要用于网站文件编码方式的整体转换上. 某天, ...

  6. 快速实现Excel到ODX/PDX数据文件的自动转换工具:VisualODX

    在创建ODX数据库的过程中,我们需要录入大量的数据和应对多种数据格式.这不仅费时费力而且还需要更高的人力成本.并且,其错误率高,从而导致了效率低下,开发速度缓慢.基于多年的汽车行业诊断经验,Softi ...

  7. java hh24miss_时间日期转换工具类,获取当前时间YYYYMMDD24HHMISS、YYYYMMDDHHMISS

    packagecom.ztesoft.iotcmp.util;importcom.ztesoft.zsmart.core.log.ZSmartLogger;importjava.sql.Timesta ...

  8. 快速实现Excel到ODX/PDX数据文件的自动转换工具:VisualODX—ODX

    在创建ODX数据库过程中,我们需要录入大量的数据及应对多种数据格式,无论时间.人力成本都比较高,且错误率高,从而导致效率低下:开发速度缓慢:基于多年的汽车行业诊断经验,Softing最新开发的Visu ...

  9. Java 全角半角转换工具类

    /*** @author: lee* @Date: 2018/11/29 09:56* @Description: 全角半角转换工具类*/ public class AsciiUtil {public ...

最新文章

  1. java launcher 下载_Java Launcher下载并安装
  2. 前端学习(526):等分布局
  3. LeetCode 第 21 场双周赛(779/1913,前40.7%)
  4. FTP:文件传输协议(指令及响应代码)
  5. libevent 例子,从简单到复杂
  6. Redis08-事件
  7. java面向对象之封装
  8. iOS两个强制旋转屏幕的方法
  9. ubutnu18.04 华硕天选2060 未发现WIFI适配器(问题尚未解决)
  10. 抓包实现原理与反抓包
  11. 6.5趣味逻辑之委派任务
  12. 将hustoj 数据从Ubuntu 14.04 成功迁移到 ubuntu 16.04
  13. 女朋友生日,我送她网页相册,她感动的哭了(文中有惊喜)
  14. 推荐几个值得关注的技术公众号
  15. P3387ybtoj【图论】4章1题【【模板】缩点】
  16. 解决IE浏览器处理返回JSON数据提示下载问题
  17. C++学习(三十九)(C语言部分)之 游戏项目(2048游戏)
  18. java微信群发_java调用个人微信接口进行群发好友,群发群
  19. 【机械】基于matlab实现直齿圆柱齿轮应力计算附matlab代码
  20. 图示扫描二维码登录原理

热门文章

  1. WordPress ProfilePress插件多个严重漏洞
  2. xtragrid 某个值 查找_Java 经典算法:二分法查找(循环和递归两种方式实现)
  3. Python中文乱码
  4. 【Android】15.0 第15章 广播和通知—本章示例主界面
  5. [UML]UML系列——时序图(顺序图)sequence diagram
  6. 《越狱》完结 米帅迷应小心纹身网站挂马
  7. EJB+JSF开发示例(附源码)
  8. LeetCode 289. 生命游戏
  9. java excel工程_java工程積累——向office致敬:有一種依賴叫excel
  10. mysql 5.6 json查询_mysql5.6及以下版本如何查询数据库里的json