



下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
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è)方法很簡單,就是獲取txt文件中的一行數(shù)據(jù),然后轉(zhuǎn)換為數(shù)組,我這個(gè)文本中只有一行。就這種情況下獲取到的str是亂碼,我想出現(xiàn)亂碼肯定是字符集編碼的問題,然后自己新建了一個(gè)文本文檔測試沒有問題(開始用的文本時(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)碼;其他格式就需要用第二段代碼對應(yīng)轉(zhuǎn)碼了,Unicode對應(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等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 半導(dǎo)體器件行業(yè)市場發(fā)展現(xiàn)狀及趨勢與投資分析研究報(bào)告
- 2024-2025學(xué)年高中物理第五章5向心加速度練習(xí)含解析新人教版必修2
- 2024-2025學(xué)年高中歷史課時(shí)分層作業(yè)181861年俄國農(nóng)奴制改革含解析北師大版選修1
- 2024-2025學(xué)年新教材高中語文第六單元第12課拿來主義課后課時(shí)作業(yè)含解析新人教版必修上冊
- 2024-2025學(xué)年高中歷史第一單元古代歷史上的改革上第2課日本仿效唐制的變革導(dǎo)學(xué)案岳麓版選修1
- 2024-2025學(xué)年高中地理第2章自然地理環(huán)境中的物質(zhì)運(yùn)動(dòng)和能量交換第1節(jié)大氣的熱狀況與大氣運(yùn)動(dòng)第2課時(shí)熱力環(huán)流與大氣的水平運(yùn)動(dòng)-風(fēng)學(xué)案中圖版必修1
- 2024-2025學(xué)年高中歷史第四單元工業(yè)文明沖擊下的改革第12課俄國農(nóng)奴制改革課后演練含解析岳麓版選修1
- 2024-2025學(xué)年高中物理第二章2描述交流電的物理量練習(xí)含解析教科版選修3-2
- 2025年不銹鋼托盤搬運(yùn)項(xiàng)目投資可行性研究分析報(bào)告
- 福建特種陶瓷項(xiàng)目可行性研究報(bào)告-圖文
- Unit5 What day is it today?(教學(xué)設(shè)計(jì))-2023-2024學(xué)年教科版(廣州)英語四年級(jí)下冊
- 法院生活費(fèi)申請書
- 2025年益陽醫(yī)學(xué)高等??茖W(xué)校高職單招職業(yè)技能測試近5年??及鎱⒖碱}庫含答案解析
- 醫(yī)用氣體施工方案
- 2024 年陜西公務(wù)員考試行測試題(B 類)
- 【課件】學(xué)校后勤管理工作
- 2025-2030年中國聚丙烯酰胺(PAM)市場發(fā)展?fàn)顩r及未來投資戰(zhàn)略決策報(bào)告新版
- 幼兒園師德師風(fēng)培訓(xùn)內(nèi)容
- 課題申報(bào)書:產(chǎn)教融合背景下護(hù)理專業(yè)技能人才“崗課賽證”融通路徑研究
- 住宅小區(qū)消防設(shè)施檢查方案
- 人教版小學(xué)數(shù)學(xué)一年級(jí)下冊教案
評論
0/150
提交評論