[idea]Java的GBK编码项目统一转换成utf-8格式
程序员文章站
2022-03-19 16:07:19
文章目录Java的GBK编码项目统一转换成utf-8格式1. 构建2. 打包参考内容Java的GBK编码项目统一转换成utf-8格式原理:使用common io批量将java项目从GBK转为UTF-8.1. 构建使用common io批量将java编码从GBK转UTF-8pom.xml commons-io ...
Java的GBK编码项目统一转换成utf-8格式
0. 直接运行jar包
java -jar GBK2UTF8.jar
1. 构建
- 原理
使用common io批量将java编码从GBK转UTF-8
- pom.xml
<dependencies>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.8.0</version>
</dependency>
</dependencies>
- GBK2UTF8.java
public class GBK2UTF8 {
public static void main(String[] args) throws IOException {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入源路径:");
//GBK编码格式源码路径
String srcDirPath = scanner.nextLine();
System.out.println("请输入存储目录:");
//转为UTF-8编码格式源码路径
String utf8DirPath = scanner.nextLine();
//String srcDirPath = "C:\\Users\\Keen\\Desktop\\filter-listener-day01-all";
//
//String utf8DirPath = "D:\\UTF8\\src";
//获取所有文件 extensions:new String[]{"java"} //仅获取java文件
Collection<File> javaGbkFileCol = FileUtils.listFiles(new File(srcDirPath), null, true);
for (File javaGbkFile : javaGbkFileCol) {
//UTF8格式文件路径
String utf8FilePath = utf8DirPath+javaGbkFile.getAbsolutePath().substring(srcDirPath.length());
System.out.println(utf8FilePath);
//使用GBK读取数据,然后用UTF-8写入数据
FileUtils.writeLines(new File(utf8FilePath), "UTF-8", FileUtils.readLines(javaGbkFile, "GBK"));
}
}
}
2. 打包
打包方式参照:
IDEA+Maven打jar包
-
IDEA自带的打包工具
打无依赖的jar包
- 如果有以下文件夹则,删除工程目录中的META-INF文件
- 选择工程上方【File】菜单选择【Project Structure】
- 点击【+】 选择【JAR】,【From modules with dependencies】点击【ok】
- 点击【1】选择你要打包的Module,点击【2】选择你的主类(也就是你的程序的入口)然后点击【ok】
- 【1】是要打的jar包的名字,【2】是jar包的输出路径,【3】是程序所需要的jar依赖。因为这里是打没有依赖的jar包,所以将【3】里面不需要的jar包删掉就行。最后点击【ok】,将生成一个META-INF文件夹,里面为一些配置属性。
- 构建jar包,构建后在输出目录下jar包已经打好了,打好的jar包在out目录下。(如果此前已经有jar包,先clean,再build)
- 在Explore中进入cmd,使用如下命令运行jar包
java -jar GBK2UTF8.jar
- 运行界面
- 输入源路径
- 输出目录
PS: 提示错误 .jar中没有主清单属性
- 解决方式
在jar包的形式下,以压缩文件方式打开,找到MANIFEST.MF,增加 Main-Class: com.lzj.GBK2UTF8 不同的启动类对应修改主类即可。
然后再保存。
参考内容
本文地址:https://blog.csdn.net/lizhangjie316/article/details/111839289