Java讀取TXT文本文件亂碼解決方案_第1頁
Java讀取TXT文本文件亂碼解決方案_第2頁
Java讀取TXT文本文件亂碼解決方案_第3頁
Java讀取TXT文本文件亂碼解決方案_第4頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、Java讀取TXT文本文件亂碼解決方案今天在解析一個(gè)文本文件的時(shí)候出現(xiàn)了亂碼,以前從未遇到,花了點(diǎn)時(shí)間解決了,在此總結(jié)一下:首先,先看一下解析的代碼:privateStringgetProjectData(Filefile)Stringdata=null;tryBufferedReaderbr=newBufferedReader(newFileReader(file);Stringstr=br.readLine();data=str.split("t");br.close();catch(FileNotFoundExceptione)e.printStackTrace();

2、catch(IOExceptione)e.printStackTrace();returndata;這個(gè)方法很簡(jiǎn)單,就是獲取txt文件中的一行數(shù)據(jù),然后轉(zhuǎn)換為數(shù)組,我這個(gè)文本中只有一行。就這種情況下獲取到的str是亂碼,我想出現(xiàn)亂碼肯定是字符集編碼的問題,然后自己新建了一個(gè)文本文檔測(cè)試沒有問題(開始用的文本時(shí)別的程序?qū)С龅?,所以我估計(jì)是開始那個(gè)txt文件編碼的問題,查看發(fā)現(xiàn)是Unicode編碼(如何查看txt的編碼呢,教你一個(gè)笨笨的辦法:打開文件另存為,然后看到最下面的編碼,默認(rèn)選擇的就是當(dāng)前文檔的編碼格式),問題就出現(xiàn)在這里。問題找到了就好解決了,修改代碼為:privateStringge

3、tProjectData(Filefile)Stringdata=null;tryBufferedReaderbr=newBufferedReader(newInputStreamReader(newFileInputStream(file),"UTF-16");Stringstr=br.readLine();data=str.split("t");br.close();catch(FileNotFoundExceptione)e.printStackTrace();catch(IOExceptione)e.printStackTrace();retur

4、ndata;使用文件流讀取,轉(zhuǎn)換編碼為“UTF-16”,這樣亂碼問題就解決了。歸納一下:txt文本文檔有四種編碼選項(xiàng):ANSI、Unicode、Unicodebigendian、UTF-8;默認(rèn)應(yīng)該是ANSI選項(xiàng),就是系統(tǒng)的默認(rèn)編碼,一般是GBK,這種情況下用第一段代碼解析是沒有問題的,也不需要轉(zhuǎn)碼;其他格式就需要用第二段代碼對(duì)應(yīng)轉(zhuǎn)碼了,Unicode對(duì)應(yīng)UTF-16,UTF-8就不用說了。關(guān)于獲取txt文件編碼,我們可能有時(shí)候需要用程序獲取,動(dòng)態(tài)判斷,這里給一點(diǎn)資料,參ANSI:無格式定義Unicode:前兩個(gè)字節(jié)為FFFEUnicode文檔以O(shè)xFFFE開頭Unicodebigendian

5、:前兩字節(jié)為FEFFUTF-前兩字節(jié)為EFBBUTF-8以O(shè)xEFBBBF開頭8程序取出前幾個(gè)字節(jié)并進(jìn)行判斷即可。packagecom.syscan.oa.util;importjava.io.BufferedReader;importjava.io.BufferedWriter;importjava.io.File;importjava.io.FileNotFoundException;importjava.io.FileReader;importjava.io.FileWriter;importjava.io.IOException;importjava.util.ArrayList;im

6、portjava.util.List;publicclassReadWritTxtFileIOpublic staticvoid main(String口 args)/ReadDate();/WriteDate();Stringpath="d:/file4.txt"writeToDatString口str=(path);System.out.println(for"str.length="+str.length);(inti=0;i<str.length;i+)System.out.println(stri);String口splitStr=str

7、i.split("#");System.out.println("splitStr.length="+splitStr.length);for(intj=0;j<splitStr.length;j+)System.out.println(splitStrj);*讀取數(shù)據(jù)*/publicstaticvoidReadDate()Stringurl="e:/2.txt"tryFileReaderread=newFileReader(newFile(url);StringBuffersb=newStringBuffer();charch

8、=newchar1024;intd=read.read(ch);while(d!=-1)Stringstr=newString(ch,0,d);sb.append(str);d=read.read(ch);System.out.print(sb.toString();catch(FileNotFoundExceptione)e.printStackTrace();catch(IOExceptione)e.printStackTrace();*寫入數(shù)據(jù)*/SuppressWarnings("unchecked")publicstaticvoidWriteDate()tryFi

9、lefile=newFile("D:/abc.txt");if(file.exists()file.delete();new BufferedWriter(newfile.createNewFile();BufferedWriteroutput=FileWriter(file);ArrayList ResolveList =new ArrayList();for(inti=0;i<10;i+)ResolveList.add(Math.random () * 100);for(inti=0;i<ResolveList.size();i+)output.write(

10、String.valueOf(ResolveList.get(i)+"n");output.close();catch(Exceptionex)System.out.println(ex);SuppressWarnings("unchecked")publicstaticString口writeToDat(Stringpath)Filefile=newFile(path);Listlist=newArrayList();String口str=null;tryBufferedReaderbw=newBufferedReader(newFileReader(file);Stringline=null;/因?yàn)椴恢烙袔仔袛?shù)據(jù),所以先存入list集合中while(line=bw.readLine()!=null)list.add(li

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論