JAVA编写文件格式转换UTF-8
2014-05-18 21:09
411 查看
情景:接到个任务,需要将某路径下包括子目录下的所有文件都转换为UTF-8格式。
结果:生成FileTransfer.jar,通过批处理调用实现该功能。
没玩过java,先把环境整好吧。
需要以下工具:
JDK安装包:(点击下载)
eclipse:(点击下载)
源码:
下载好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; (这个原来就存在,在里面新加上这两个路径就好了)
![](https://img-blog.csdn.net/20140518211128828?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd2ZkdHh6/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](https://img-blog.csdn.net/20140518211252812?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd2ZkdHh6/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
配置好后,在DOS命令好输入 java -version 出现如下界面表明配置OK
![](https://img-blog.csdn.net/20140518211734703)
前面下载好的eclipse直接解压就可以使用了,无需安装,双击打开eclipse,创建一个JAVA工程
选择File-->New-->Project
![](https://img-blog.csdn.net/20140518212245125)
选择Java Project
![](https://img-blog.csdn.net/20140518212412875)
给工程起个名字,选择JRE8,点击FINISH完成工程创建。
![](https://img-blog.csdn.net/20140518212649500)
右键点击SRC,New-->Class
![](https://img-blog.csdn.net/20140518212925703)
给类起个名字,点击FINISH完成类创建,将前面的源码复制粘贴到源文件中。
![](https://img-blog.csdn.net/20140518213230062)
这里面用到了3个jar包,需要下载加入工程。
cpdetector.jar
jchardet-1.0.jar
antlr.jar
加入工程方法:
![](https://img-blog.csdn.net/20140518214119046)
选择Libraries,点击Add External JARs...,把选择上面下载的3个包加入工程即可。
![](https://img-blog.csdn.net/20140518214225250)
把JAVA源码生成为JAR包。
右键点击工程,Export
![](https://img-blog.csdn.net/20140518214653968)
选择JAVA下的Runnable JAR file
![](https://img-blog.csdn.net/20140518214833000)
选择源码和生成jar的路径,点击finish就生成JAR包了。
![](https://img-blog.csdn.net/20140518214955390)
编写批处理:
执行结果如下:
![](https://img-blog.csdn.net/20140518215508718)
bat批处理文件打包成exe
打开源文件
![](https://img-blog.csdn.net/20140518223703593)
工程-->选项
![](https://img-blog.csdn.net/20140518223805968)
选择工程编译,生成exe文件。
![](https://img-blog.csdn.net/20140518224031906)
最后生成exe文件如下:
结果:生成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 block System.out.println(UnsupportedEncodingExceptionError); e.printStackTrace(); } catch (FileNotFoundException e) { // TODO Auto-generated catch block System.out.println(FileNotFoundExceptionError); e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block System.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 block e.printStackTrace(); System.out.println(FileNotFoundExceptionError); } catch (IOException e) { // TODO Auto-generated catch block e.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 block System.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文件如下:
相关文章推荐
- Source Insight 将UTF-8格式的JAVA文件转换为GB2312格式的JAVA文件
- 识别常见编码格式文件并转换成UTF-8编码 的java实现 源码
- 识别常见编码格式文件并转换成UTF-8编码的java实现
- Source Insight 将UTF-8格式的JAVA文件转换为GB2312格式的JAVA文件
- 基于java的图片文件格式转换和线性缩放
- 用java程序调用ffmpeg执行视频文件格式转换flv
- Java平台要实现类似豆丁百度文科的文档在线阅读,总体思路是讲doc docx等文件格式利用jcom转换成pdf再用swftools转为swf。再用flexpaper组件显示swf。
- 基于java的图片文件格式转换和线性缩放-Java基础-Java-编程开发
- 中文转换成UTF-8格式的java代码
- 将Java编写的WebService接口转换成WSDL文件(CXF)
- Ubuntu转换文件编码格式(gbk to utf-8 )
- Java平台要实现类似豆丁百度文科的文档在线阅读,总体思路是讲doc docx等文件格式利用jcom转换成pdf再用swftools转为swf。再用flexpaper组件显示swf。
- 把ANSI格式的TXT文件批量转换成UTF-8文件类型
- Java读取UTF-8格式txt文件第一行出现乱码——问号“?”及解决;Java读带有BOM的UTF-8文件乱码原因及解决方法
- 用java程序调用ffmpeg执行视频文件格式转换flv
- 基于java的图片文件格式转换和线性缩放
- C#和JAVA文件的UTF-8格式互换
- ASP+FSO生成的网页文件默认编码格式以及转换成UTF-8编码方法
- .java文件的ANSI编码转换为UTF-8编码
- 把当前目录和子目录下的java文件,从GBK转换成UTF-8字符集的shell脚本