在实际开发过程中,针对不同的需求有时候需要更改Java工程的编码格式。最近,我在和部署在linux系统环境下的系统做集成的过程中,由于编码格式不一致,导致在linux系统下利用java解压压缩包出现乱码的情况。经过各种尝试,发现本地java工程的编码格式不一致导致的。但是java文件中存在大量的中文,如果通过手动方式转换,工作量太大。作为一名程序员,对于大量重复工作我们肯定不能手工处理。所以就有了如下的处理方式。一下代码作为记在,方便以后使用,这里我们会用到common-io的jar包。所以记录如下:
1.pom.xml
<dependencies>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.6</version>
</dependency>
</dependencies>
2.代码
/**
* 文件编码转换
* @param srcPath 源文件夹
* @param descPath 目标文件夹
* @param srcCode 源编码格式
* @param descCode 目标编码格式
*/
public static void codeTran(String srcPath, String descPath, String srcCode, String descCode) {
Collection<File> javaSrcFiles = FileUtils.listFiles(new File(srcPath), new String[] { "java" }, true);
try {
for (File javaSrcFile : javaSrcFiles) {
String descFilePath = descPath + javaSrcFile.getAbsolutePath().substring(srcPath.length());
FileUtils.writeLines(new File(descFilePath), descCode, FileUtils.readLines(javaSrcFile, srcCode));
}
} catch (IOException e) {
e.printStackTrace();
}
}