java文件转码
判断编码
package change;
import info.monitorenter.cpdetector.io.CodepageDetectorProxy;
import info.monitorenter.cpdetector.io.JChardetFacade;
import java.io.File;
import java.nio.charset.Charset;
public class EncodingUtil {
public static String getFileEncoding(String filePath) {
File file = new File(filePath);
return getFileCharacterEnding(file);
}
/**
* Try to get file character ending.
* </p>
* <strong>Warning: </strong>use cpDetector to detect file's encoding.
*
* @param file
* @return
*/
public static String getFileCharacterEnding(File file) {
String fileCharacterEnding = "UTF-8";
CodepageDetectorProxy detector = CodepageDetectorProxy.getInstance();
detector.add(JChardetFacade.getInstance());
Charset charset = null;
// File f = new File(filePath);
try {
charset = detector.detectCodepage(file.toURL());
} catch (Exception e) {
e.printStackTrace();
}
if (charset != null) {
fileCharacterEnding = charset.name();
}
return fileCharacterEnding;
}
public static void main(String[] args) {
System.out.println(getFileEncoding("E:/code/myec_cyh/pingan_dmz/test.java"));
System.out.println(getFileEncoding("E:/code/myec_cyh/pingan_dmz/src/cn/com/benyoyo/manage/core/DBUtil/PublicDao.java"));
}
}
package change;
import java.io.File;
import java.util.Collection;
import org.apache.commons.io.FileUtils;
/**
*
* @author sgy
*
*如果项目中同时存在有gb2312/gbk和utf8的文件,则将gb2312/gbk的转为utf8
*/
public class ChangeEncoding {
public static void main(String[] args) throws Exception {
//GBK编码格式源码路径
String srcDir = "E:\\pingan_dmz";
//转为UTF-8编码格式源码路径
String targetDirectory = "E:\\code\\myec_cyh\\pingan_dmz";
//获取所有java文件
Collection<File> srcDirFileCol = FileUtils.listFiles(new File(srcDir), new String[]{"java"}, true);
for (File srcFile : srcDirFileCol) {
String srcFilePath = srcFile.getAbsolutePath();
//当为GB2312时才会转换为urf8
String srcEncoding = EncodingUtil.getFileEncoding(srcFilePath);
System.out.print(srcFile.getName()+":"+srcEncoding+" ");
if ("GB2312" == srcEncoding || "GBK" == srcEncoding) {
System.out.println();
System.out.print(srcFile.getAbsolutePath());
//UTF8格式文件路径
String targetFilePath = targetDirectory+srcFilePath.substring(srcDir.length());
//使用GBK读取数据,然后用UTF-8写入数据
FileUtils.writeLines(new File(targetFilePath), "UTF-8", FileUtils.readLines( srcFile, srcEncoding));
}
}
}
}
附件列表
java文件转码的更多相关文章
- 从Java文件到字节码文件
本文涉及的javac编译器来自openjdk. javac的目录地址为:解压目录/langtools/src/share/classes/com/sun/tools/javac/ javac编译器将J ...
- 9:关于Maven工程的文件标识(定义java文件源码,资源文件)
- Java文件操作源码大全
Java文件操作源码大全 1.创建文件夹 52.创建文件 53.删除文件 54.删除文件夹 65.删除一个文件下夹所有的文件夹 76.清空文件夹 87.读取文件 88.写入文件 99.写入随机文件 9 ...
- 小兔Java教程 - 三分钟学会Java文件上传
今天群里正好有人问起了Java文件上传的事情,本来这是Java里面的知识点,而我目前最主要的精力还是放在了JS的部分.不过反正也不麻烦,我就专门开一贴来聊聊Java文件上传的基本实现方法吧. 话不多说 ...
- Eclipse JAVA文件注释乱码
将别人的项目或JAVA文件导入到自己的Eclipse中时,常常会出现JAVA文件的中文注释变成乱码的情况,主要原因就是别人的IDE编码格式和自己的Eclipse编码格式不同. 总结网上的建议和自己的体 ...
- Java集合源码分析(二)ArrayList
ArrayList简介 ArrayList是基于数组实现的,是一个动态数组,其容量能自动增长,类似于C语言中的动态申请内存,动态增长内存. ArrayList不是线程安全的,只能用在单线程环境下,多线 ...
- [转载]将别人的项目或JAVA文件导入到自己的Eclipse中时,常常会出现JAVA文件的中文注释变成乱码的情况,解决办法
eclipse 代码中文注释乱码 求解决 将别人的项目或JAVA文件导入到自己的Eclipse中时,常常会出现JAVA文件的中文注释变成乱码的情况,主要原因就是别人的IDE编码格式和自己的Eclips ...
- Java学习-039-源码 jar 包的二次开发扩展实例(源码修改)
最近在使用已有的一些 jar 包时,发现有些 jar 包中的一些方法无法满足自己的一些需求,例如返回固定的格式,字符串处理等等,因而需要对原有 jar 文件中对应的 class 文件进行二次开发扩展, ...
- eclipse android 不会自动生成R.java文件和包的解决办法
eclipse下编写android程序突然不会自动生成R.java文件和包的解决办法 我的eclipse原来是好好的,什么问题都没有的,结果今天一打开新建一个android程序,发现工程里不会自动 ...
随机推荐
- laravel使用artisan报错SQLSTATE[42S02]: Base table or view not found: 1146
说明你在应用初始化阶段使用到了数据库层面的东西,然而当时数据库不存在这个表/字段,所以会报错 需要在初始化比如 config 目录配置中,使用了数据库,在使用前需要添加一层判断,如果不存在 你需要用到 ...
- js(javascript)取float型小数点后两位数的方法
以下我们将为大家介绍 JavaScript 保留两位小数的实现方法:四舍五入以下处理结果会四舍五入: ? 1 2 var num =2.446242342; num = num.toFixed(2); ...
- Java ——JDBC数据库编程
数据库分类 关系型数据库:以表来存放数据的,数据与数据之间的关系通过表之间的连接体现 面向对象的数据库:保存的是对象本身 其它 数据库:数据库管理系统中创建一个个的保存数据的单位 数据是保存在数据库的 ...
- linux下安装python27 nginx 和uwsgi
注意: python27 默认没有安装 pip 和setuptools所以要提前安装.(务必先提前安装python27 哈 ) wget --no-check-certificate https:// ...
- PHPstorm Xdebugger最全详细
0 Xdebug调试的原理(选看) 图0-1 单机调试原理示意图 图0-2 多机调试原理示意图 对于PHP开发,初来咋到,开发环境的搭建和理解感觉是最烦人的一件事了.不像JAVA,打开一个Eclips ...
- linux eclipse 下出现undefined reference ***,在使用boost库时出现的问题
直接在eclipse下添加boost_system就可以了,这个文件有可能在库中找不到,或者名字不一样,直接使用这个名字就可以了,在setting 下
- js转换后台接受的日期格式
var html = "--";if(data.createTime!=null&&data.createTime!=""){ Date.pro ...
- 高性能JavaScript模板引擎实现原理详解
这篇文章主要介绍了JavaScript模板引擎实现原理详解,本文着重讲解artTemplate模板的实现原理,它采用预编译方式让性能有了质的飞跃,是其它知名模板引擎的25.32 倍,需要的朋友可以参考 ...
- java视频资源
1.Java基础阶段 尚学堂_刘凯立_JavaSE基础视频 http://pan.baidu.com/s/1geCoY11 尚学堂_高淇_Java300集视频教程 https://pan.baidu. ...
- org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [dx.service.ItemService] found for dependency
在整合ssm框架,测试service层的时候报错 Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: ...