java练手全程录3-处理代码中文工具类

2012-2-4 和 2012-2-6 号两天空闲时间


这两天没有继续处理页面,而是编写了一个文件处理工具类。最后还写了一个简单的GUI的实用工具,加入到自己的实用工具箱里。


因为对于项目的国际化问题,每次中文都要用native2ascill工具来转成unicode码,又是命令行操作,很是不方便。便有了自己写个工具类来处理文件中的中文问题的想法。


基本思路很简单

1.给定一个地址,判断否是目录还是文件

2.如果是目录就继续取子目录中的文件

3.如果是文件,则判断文件类型,文件只取.java(后加入了.properties)类型的文件

4.读取文件内容到内存(一般一个文件不过几十到几百K,如果是以M为单位,构架肯定是有问题的了)

5.如果内容中有中文则转换中文为unicode

6.在内存中完成操作,最后再用文件流覆盖原文件


编写中发现了几个麻烦点

1.在内存中对于字符串转换时后的长度和定位,如果只是用String的replace当然是不会很麻烦,但考虑到性能效率,改用了StringBuilder的内部字节转换,当然实现就麻烦点了。

2.要考虑到文件的编码类型

 本来工具类已经写完,结果测试时发现了个别文件出现了乱码,仔细分析后发现,那些properties是以gbk为编码的,而我本机默认是utf8,导致乱码,对于乱码可以有多种方式解决,可以用文件的前三个字节来判断出文件编码,但不是很准,所以我还是采用了固定编码。也就是想要转换的文件必须是以utf8编码的,不然转换后乱码就后果自负。


下班了,明天继续写出我的代码实现。

我已经写了一个GUI的工具,贴图留念。明天继续

你可能感兴趣的:(java)