Java文件编码自动转换工具类

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java文件编码自动转换工具类相关的知识,希望对你有一定的参考价值。

  本篇随笔主要介绍了一个用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 }

 

 

    

以上是关于Java文件编码自动转换工具类的主要内容,如果未能解决你的问题,请参考以下文章

Java工具类-转换字符编码

solr分布式索引实战分片配置读取:工具类configUtil.java,读取配置代码片段,配置实例

java存储富文本到啥数据库

java多媒体文件编码要怎么写,处理工具类代码实例详情介绍

elasticsearch代码片段,及工具类SearchEsUtil.java

JAVA里的编码转换,懂的进来看看!!!!!