日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

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

發布時間:2025/3/19 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java utf-8格式,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 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文件如下:

總結

以上是生活随笔為你收集整理的java utf-8格式,JAVA编写文件格式转换UTF-8的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。