JAVA编写文件格式转换UTF-8
情景:接到个任务,需要将某路径下包括子目录下的所有文件都转换为UTF-8格式。
结果:生成FileTransfer.jar,通过批处理调用实现该功能。
没玩过java,先把环境整好吧。
需要以下工具:
JDK安装包:(点击下载)
eclipse:(点击下载)
源码:
import info.monitorenter.cpdetector.CharsetPrinter;import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.UnsupportedEncodingException;
import java.io.Writer;public class EncodeFormatTransfer
{public static String DefaultSrcEncodeFormat = "GBK";public static String DefaultDestEncodeFormat = "UTF-8";public static String UnsupportedEncodingExceptionError = "编码格式错误!";public static String FileNotFoundExceptionError = "文件不存在!";public static String IOExceptionError = "文件读写错误!";public static String IsUtf8File = "文件是UTF-8编码格式!";public static String IsNotUtf8File = "文件不是UTF-8编码格式!";public static String readFile(String path,String encodeFormat){if((encodeFormat==null || encodeFormat.equals(""))){if(isUTF8File(path)){encodeFormat = DefaultDestEncodeFormat;}else{encodeFormat = DefaultSrcEncodeFormat;}}try{String context = "";InputStreamReader isr;isr = new InputStreamReader(new FileInputStream(path),encodeFormat);BufferedReader br = new BufferedReader(isr);String line;while((line = br.readLine()) != null){context += line + "\r\n";System.out.println(line);}br.close();return context;}catch (UnsupportedEncodingException e){// TODO Auto-generated catch blockSystem.out.println(UnsupportedEncodingExceptionError);e.printStackTrace();}catch (FileNotFoundException e){// TODO Auto-generated catch blockSystem.out.println(FileNotFoundExceptionError);e.printStackTrace();}catch (IOException e){// TODO Auto-generated catch blockSystem.out.println(IOExceptionError);e.printStackTrace();};return "";}public static boolean isUTF8File(String path){try{File file = new File(path);CharsetPrinter detector = new CharsetPrinter();String charset = detector.guessEncoding(file);if(charset.equalsIgnoreCase(DefaultDestEncodeFormat)){System.out.println(IsUtf8File);return true;}}catch (FileNotFoundException e){// TODO Auto-generated catch blocke.printStackTrace();System.out.println(FileNotFoundExceptionError);}catch (IOException e){// TODO Auto-generated catch blocke.printStackTrace();System.out.println(IOExceptionError);}System.out.println(IsNotUtf8File);return false;}public static String transfer(String context,String encodeFormat){if(encodeFormat==null || encodeFormat.equals(""))encodeFormat = DefaultDestEncodeFormat;try{byte[] content = context.getBytes();String result = new String(content,encodeFormat);return result;}catch (UnsupportedEncodingException e){// TODO Auto-generated catch blockSystem.out.println(UnsupportedEncodingExceptionError);e.printStackTrace();}return "";}public static void writeFile(String context,String path,String destEncode){File file = new File(path);if(file.exists())file.delete();BufferedWriter writer;try{FileOutputStream fos = new FileOutputStream(path,true);writer = new BufferedWriter(new OutputStreamWriter(fos, destEncode));writer.append(context);writer.close();}catch (IOException e){System.out.println(IOExceptionError);e.printStackTrace();}}public static void writeFile(String context,String path){File file = new File(path);if(file.exists())file.delete();Writer writer;try{writer = new FileWriter(file, true);writer.append(context);writer.close();}catch (IOException e){System.out.println(IOExceptionError);e.printStackTrace();}}public static void transfer(String srcPath,String destPath,String srcEncode,String destEncode){if(destPath==null || destPath.equals(""))destPath = srcPath;String context = readFile(srcPath,srcEncode);context = transfer(context,destEncode);writeFile(context,destPath,destEncode);}public static void transfer(String srcPath,String destPath,String destEncode){if(true != isUTF8File(srcPath)){transfer(srcPath,destPath,DefaultSrcEncodeFormat,destEncode);}}public static void main(String args[]){String path1 = args[0];transfer(path1,path1,"UTF-8");}
}
下载好JDK文件安装包后,根据安装向导不停的下一步安装就好了,应该大家都会 ^___^
配置环境变量
3个环境变量需要配置:
JAVA_HOME D:\Program Files\Java\jdk1.8.0_05 (这个是JDK安装路径,你安装在哪里这个就填什么路径)
CLASSPATH %JAVA_HOME%\lib
PATH %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin; (这个原来就存在,在里面新加上这两个路径就好了)
配置好后,在DOS命令好输入 java -version 出现如下界面表明配置OK
前面下载好的eclipse直接解压就可以使用了,无需安装,双击打开eclipse,创建一个JAVA工程
选择File-->New-->Project
选择Java Project
给工程起个名字,选择JRE8,点击FINISH完成工程创建。
右键点击SRC,New-->Class
给类起个名字,点击FINISH完成类创建,将前面的源码复制粘贴到源文件中。
这里面用到了3个jar包,需要下载加入工程。
cpdetector.jar
jchardet-1.0.jar
antlr.jar
加入工程方法:
选择Libraries,点击Add External JARs...,把选择上面下载的3个包加入工程即可。
把JAVA源码生成为JAR包。
右键点击工程,Export
选择JAVA下的Runnable JAR file
选择源码和生成jar的路径,点击finish就生成JAR包了。
编写批处理:
@echo off
cd "%~dp0"
for /r %%i in (*.py) do java -jar FileTransfer.jar %%i
执行结果如下:
bat批处理文件打包成exe
打开源文件
工程-->选项
选择工程编译,生成exe文件。
最后生成exe文件如下:
JAVA编写文件格式转换UTF-8相关推荐
- java utf-8格式,JAVA编写文件格式转换UTF-8
情景:接到个任务,需要将某路径下包括子目录下的所有文件都转换为UTF-8格式. 结果:生成FileTransfer.jar,通过批处理调用实现该功能. 没玩过java,先把环境整好吧. 需要以下工具: ...
- Java实现文件格式转换(如amr转MP3)并上传FTP服务器实例
1.准备JAR包 2.代码 首先确定你要转换的文件类型,如amr转成MP3格式,如果你想转换其他的格式,可以参考JAVE 视音频转码,文中详细解释了 JAVE(Java Audio Video Enc ...
- java 文件格式转换
java 系列文章 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 java 系列文章 前言 一.base ...
- java 图片文件 格式转换_Java的图片文件格式转换和线性缩放
Java的图片文件格式转换和线性缩放 来源:68design.net 2007年07月13日 08:31 图片文件格式转换最核心的问题就是要解决各种图片格式的编码和解码,推荐用jimi包,可从 htt ...
- java编写代码用什么_如何学习用Java编写代码:为什么要学习以及从哪里开始
java编写代码用什么 by John Selawsky 约翰·塞劳斯基(John Selawsky) 如何学习用Java编写代码:为什么要学习以及从哪里开始 (How to learn to cod ...
- 解读Java Class文件格式
1.目的 大型软件系统开发时,某些Java组件可能涉及到多种数据库或中间件系统的连接和应用,例如一个数据传递组件需要从DB2中读取数据,并将数据通过中间件WebSphere MQ发送到其他系统,这类组 ...
- java线程切换 notify_浅谈 Java线程状态转换及控制
作者:城北有个混子 出自:博客园 1.线程的状态(系统层面) 一个线程被创建后就进入了线程的生命周期.在线程的生命周期中,共包括新建(New).就绪(Runnable).运行(Running).阻塞( ...
- jooq sql_用jOOQ用Java编写SQL
jooq sql jOOQ是"数据库优先"类型的安全SQL API,使您可以直观地用Java编写SQL,就像Java编译器本身支持SQL语言一样. 所有数据库模式,表,列,过程和其 ...
- 用jOOQ用Java编写SQL
jOOQ是"数据库优先"的类型安全的SQL API,使您可以直观地用Java编写SQL,就像Java编译器本身支持SQL语言一样. 所有数据库模式,表,列,过程和其他对象均作为Ja ...
最新文章
- tools.jar seem to ....
- PSSM特征-从生成到处理
- 【简明表】MATLAB + 矩阵运算
- 线程Java的两种方式_多线程(java和guava两种方式):
- win7mysql免安装版安装_win7下MySQL免安装版下载安装、配置与使用
- C++ Qt全局异常处理器_异常处理
- 软件工程第一次作业(2)
- 如何将exe文件在linux下执行,[操作系统]如何在linux centos 环境下运行.exe文件
- 511 排序预演_最小数简单置前
- 链接测试苹果手机软件,【苹果】苹果手机上如何使用免费观影软件?用TestFlight+某影视APP试试...
- 【第17天】SQL进阶-查询优化- SHOW STATUS(SQL 小虚竹)
- 【SEED Labs 2.0】Packet Sniffing and Spoofing Lab
- ubuntu18.04鼠标可以移动但是无法点击解决方法
- WannaCry勒索病毒分析 **下**
- 系统架构师论文-论软件架构的选择与应用
- ExtJS教程(3)--- Ext中类的使用
- 海思Hi3536移植QT5.9.8教程
- IE6不能直接打开下载的文件的解决办法
- vue项目--资产管理系统
- 免费的图片服务器https://sm.ms
热门文章
- 【线性代数04】投影矩阵P和标准正交矩阵Q
- 天道酬勤系列之Redis 事务的介绍与实例使用
- 2022年高处安装、维护、拆除操作证考试题库及答案
- LeetCode:911. 在线选举————中等
- 距总决赛还有100天!详解沃顿KWHS全球投资挑战赛
- [DB][mysql]下出现 java.sql.SQLException: Incorrect string value: '\xF4\x80\x8E\xAE\xE8\x83...'
- DDR3 MIG上板测试记录
- MIZ7035上的AXI接口的MIG测试
- MySQL 云数据库物理备份本地恢复方案
- mysql5.7.10 二进制包_mysql 32 位安装教程mysql5.7 二进制包安装