生活随笔
收集整理的這篇文章主要介紹了
字符编码转换器
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
簡介
- 這是個文件字符編碼轉換程序
- 只能支持文本文件,比如.txt/.cpp/.java等等,不支持二進制文件(二進制文件也用不到這個 2333)
- OK ,上源碼,具體使用下面main方法里有簡介
源碼
import java
.io
.BufferedReader
;
import java
.io
.BufferedWriter
;
import java
.io
.File
;
import java
.io
.FileInputStream
;
import java
.io
.FileOutputStream
;
import java
.io
.InputStreamReader
;
import java
.io
.OutputStreamWriter
;public class TransformCharset {private String path
= null
, charsetName_input
= null
, charsetName_output
= null
;private void ifFile() throws Exception
{File file
= new File(path
);if (!file
.exists()) {System
.out
.println("File/Path not found: " + path
);} else {runCircle(file
);}}public void runCircle(File file
) throws Exception
{if (file
.isFile()) {transformCharset(file
);} else {File
[] files
= file
.listFiles(); if (files
!= null
&& files
.length
> 0) {for (File f
: files
) {runCircle(f
);}}}}private void transformCharset(File file
) throws Exception
{BufferedReader bufferReader
= new BufferedReader(new InputStreamReader(new FileInputStream(file
.getPath()), charsetName_input
));BufferedWriter bufferWriteFile
= new BufferedWriter(new OutputStreamWriter(new FileOutputStream("./bufferFile"), charsetName_output
));char[] string
= new char[1024];int length
= 0;while ((length
= bufferReader
.read(string
)) != -1) {bufferWriteFile
.write(string
, 0, length
);}bufferReader
.close();bufferWriteFile
.flush();bufferWriteFile
.close();BufferedReader bufferReadFile
= new BufferedReader(new InputStreamReader(new FileInputStream("./bufferFile"), charsetName_output
));BufferedWriter bufferWriter
= new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file
.getPath()), charsetName_output
));while ((length
= bufferReadFile
.read(string
)) != -1) {bufferWriter
.write(string
, 0, length
);}bufferReadFile
.close();bufferWriter
.flush();bufferWriter
.close();new File("./bufferFile").delete();System
.out
.println("TransformCharset done:\t" + file
.getPath());}private TransformCharset(String path
, String charsetName_input
, String charsetName_output
) {this.path
= path
;this.charsetName_input
= charsetName_input
;this.charsetName_output
= charsetName_output
;}public static void main(String
[] args
) {String path
= "./Java/src/main/java/twenty/october/stream/1";TransformCharset t
= new TransformCharset(path
, "GB2312", "UTF-8");try {t
.ifFile();} catch (Exception e
) {e
.printStackTrace();}}
}
總結
以上是生活随笔為你收集整理的字符编码转换器的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。