日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

java utf-8格式,JAVA编写文件格式转换UTF-8

發(fā)布時(shí)間:2025/3/19 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java utf-8格式,JAVA编写文件格式转换UTF-8 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

情景:接到個(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)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。