java讀取txt文本文件亂碼解決方案

java讀取txt文本文件亂碼解決方案

ID:5322742

大?。?1.50 KB

頁數(shù):4頁

時間:2017-12-08

java讀取txt文本文件亂碼解決方案_第1頁
java讀取txt文本文件亂碼解決方案_第2頁
java讀取txt文本文件亂碼解決方案_第3頁
java讀取txt文本文件亂碼解決方案_第4頁
資源描述:

《java讀取txt文本文件亂碼解決方案》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。

1、Java讀取TXT文本文件亂碼解決方案今天在解析一個文本文件的時候出現(xiàn)了亂碼,以前從未遇到,花了點時間解決了,在此總結(jié)一下:首先,先看一下解析的代碼:privateString[]getProjectData(Filefile){String[]data=null;try{BufferedReaderbr=newBufferedReader(newFileReader(file));Stringstr=br.readLine();data=str.split("t");br.close();}catch(FileNot

2、FoundExceptione){e.printStackTrace();}catch(IOExceptione){e.printStackTrace();}returndata;}這個方法很簡單,就是獲取txt文件中的一行數(shù)據(jù),然后轉(zhuǎn)換為數(shù)組,我這個文本中只有一行。就這種情況下獲取到的str是亂碼,我想出現(xiàn)亂碼肯定是字符集編碼的問題,然后自己新建了一個文本文檔測試沒有問題(開始用的文本時別的程序?qū)С龅模晕夜烙嬍情_始那個txt文件編碼的問題,查看發(fā)現(xiàn)是Unicode編碼(如何查看txt的編碼呢,教你一個笨笨的辦法:

3、打開文件——另存為,然后看到最下面的編碼,默認(rèn)選擇的就是當(dāng)前文檔的編碼格式),問題就出現(xiàn)在這里。問題找到了就好解決了,修改代碼為:privateString[]getProjectData(Filefile){String[]data=null;try{BufferedReaderbr=newBufferedReader(newInputStreamReader(newFileInputStream(file),"UTF-16"));Stringstr=br.readLine();data=str.split("t")

4、;br.close();}catch(FileNotFoundExceptione){e.printStackTrace();}catch(IOExceptione){e.printStackTrace();}returndata;}使用文件流讀取,轉(zhuǎn)換編碼為“UTF-16”,這樣亂碼問題就解決了。歸納一下:txt文本文檔有四種編碼選項:ANSI、Unicode、Unicodebigendian、UTF-8;默認(rèn)應(yīng)該是ANSI選項,就是系統(tǒng)的默認(rèn)編碼,一般是GBK,這種情況下用第一段代碼解析是沒有問題的,也不需要轉(zhuǎn)碼;其

5、他格式就需要用第二段代碼對應(yīng)轉(zhuǎn)碼了,Unicode對應(yīng)UTF-16,UTF-8就不用說了。關(guān)于獲取txt文件編碼,我們可能有時候需要用程序獲取,動態(tài)判斷,這里給一點資料,參考參考:ANSI:無格式定義Unicode:前兩個字節(jié)為FFFEUnicode文檔以0xFFFE開頭Unicodebigendian:前兩字節(jié)為FEFFUTF-8:前兩字節(jié)為EFBBUTF-8以0xEFBBBF開頭用程序取出前幾個字節(jié)并進(jìn)行判斷即可。packagecom.syscan.oa.util;importjava.io.BufferedRead

6、er;importjava.io.BufferedWriter;importjava.io.File;importjava.io.FileNotFoundException;importjava.io.FileReader;importjava.io.FileWriter;importjava.io.IOException;importjava.util.ArrayList;importjava.util.List;publicclassReadWritTxtFileIO{publicstaticvoidmain(Str

7、ing[]args){//ReadDate();////WriteDate();Stringpath="d:/file4.txt";String[]str=writeToDat(path);System.out.println("str.length=="+str.length);for(inti=0;i

8、ngth=="+splitStr.length);for(intj=0;j

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動畫的文件,查看預(yù)覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時聯(lián)系客服。
3. 下載前請仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡(luò)波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。