利用JAVA IO 解決亂碼的問題

2021-04-30 20:26:45 字數 872 閱讀 7752

前一段時間做乙個法國的專案,其中有乙個資料同步的問題,客戶給我們他們從自己資料庫匯出的xml格式的資料,我在這邊寫了乙個定時程式,定期檢測檔案是否更新,並同步xml格式的資料到我們這邊的資料庫中。當時自己一時疏忽,利用jdom解析檔案,但是後面碰到了乙個問題,客戶的檔案過大,將近百兆,同步時會報記憶體溢位問題。所以採取了乙個折中的辦法,我把檔案進行分解,以兩千條資料為乙個檔案單位,這樣問題就初步解決了。

但是後面報出了另外乙個問題,客戶那面的資料中有法文字元,我分解檔案的時候有些字元,如「de consoles étagères」會在分解後的檔案中出現亂碼問題。我原來的思路是利用filereader構件字元流,然後用bufferedreader裝飾filereader,利用bufferedreader的readline()方法逐行讀取,同樣的方法利用bufferedwriter,filereader寫入分割檔案。

後來我查閱了網上的資料,問題出現在編碼集的問題和流與字元的糾葛。

解決方法是利用inputstreamreader和outputstreamwriter,並設定編碼集合,如下:

bufferedreader br = new bufferedreader(new inputstreamreader(new     fileinputstream(xmlfile), charset.forname("utf-8")));

bufferedwriter bw = new bufferedwriter(new outputstreamwriter(new    fileoutputstream(xmlpath + "temp1.xml"), charset.forname("utf-8")));

這樣問題就解決了,其實filereader就是從inputstreamreader繼承的,採用的編碼格式是系統預設的。

java io流讀檔案,亂碼問題

原來讀檔案用 filereader fr new filereader 檔案路徑 bufferedreader br new bufferedreader fr 會出現亂碼問題。後來發現要設定編碼,如下 file file new file 檔案路徑 inputstreamreader read n...

亂碼問題的解決

我們從前台頁面傳遞引數到後台,經常會遇到亂碼問題!例子 page contenttype 測試結果 解決辦法如下 不得不說,亂碼問題是在我們開發中十分常見的問題,也是讓我們程式猿比較頭大的問題!以前亂碼問題通過過濾器解決 而springmvc給我們提供了乙個過濾器 可以在web.xml中配置 修改了...

ORACLE亂碼問題的解決

使用sqlplus連線oracle資料庫的時候,老是出現?一類的字元,主要是因為 伺服器和客戶端語言設定不相同。日文環境下 伺服器端的設定為 ja16sjis,客戶端沒有作設定就出現了上述現象。請將環境變數設值為 csh setenv nls lang american japan.ja16sjis...