java utf-8格式,JAVA编写文件格式转换UTF-8
情景:接到個(gè)任務(wù),需要將某路徑下包括子目錄下的所有文件都轉(zhuǎn)換為UTF-8格式。
結(jié)果:生成FileTransfer.jar,通過(guò)批處理調(diào)用實(shí)現(xiàn)該功能。
沒(méi)玩過(guò)java,先把環(huán)境整好吧。
需要以下工具:
JDK安裝包:(點(diǎn)擊下載)
eclipse:(點(diǎn)擊下載)
源碼:
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 = "編碼格式錯(cuò)誤!";
public static String FileNotFoundExceptionError = "文件不存在!";
public static String IOExceptionError = "文件讀寫錯(cuò)誤!";
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文件安裝包后,根據(jù)安裝向?qū)Р煌5南乱徊桨惭b就好了,應(yīng)該大家都會(huì) ^___^
配置環(huán)境變量
3個(gè)環(huán)境變量需要配置:
JAVA_HOME ? ? ?D:\Program Files\Java\jdk1.8.0_05 (這個(gè)是JDK安裝路徑,你安裝在哪里這個(gè)就填什么路徑)
CLASSPATH ? ??%JAVA_HOME%\lib
PATH ? ? ? ? ? ? ? ? ?%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin; ?(這個(gè)原來(lái)就存在,在里面新加上這兩個(gè)路徑就好了)
配置好后,在DOS命令好輸入 java -version 出現(xiàn)如下界面表明配置OK
前面下載好的eclipse直接解壓就可以使用了,無(wú)需安裝,雙擊打開(kāi)eclipse,創(chuàng)建一個(gè)JAVA工程
選擇File-->New-->Project
選擇Java Project
給工程起個(gè)名字,選擇JRE8,點(diǎn)擊FINISH完成工程創(chuàng)建。
右鍵點(diǎn)擊SRC,New-->Class
給類起個(gè)名字,點(diǎn)擊FINISH完成類創(chuàng)建,將前面的源碼復(fù)制粘貼到源文件中。
這里面用到了3個(gè)jar包,需要下載加入工程。
cpdetector.jar
jchardet-1.0.jar
antlr.jar
加入工程方法:
選擇Libraries,點(diǎn)擊Add External JARs...,把選擇上面下載的3個(gè)包加入工程即可。
把JAVA源碼生成為JAR包。
右鍵點(diǎn)擊工程,Export
選擇JAVA下的Runnable JAR file
選擇源碼和生成jar的路徑,點(diǎn)擊finish就生成JAR包了。
編寫批處理:
@echo off
cd "%~dp0"
for /r %%i in (*.py) do java -jar FileTransfer.jar %%i
執(zhí)行結(jié)果如下:
bat批處理文件打包成exe
打開(kāi)源文件
工程-->選項(xiàng)
選擇工程編譯,生成exe文件。
最后生成exe文件如下:
總結(jié)
以上是生活随笔為你收集整理的java utf-8格式,JAVA编写文件格式转换UTF-8的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: php group by 求和,GROU
- 下一篇: oracle 存储过程 输入,Oracl