2012-01-27 43 views
0

我想使用ini4j從Windows軟件日誌文件中獲取數據。該文件看起來像:由windows軟件創建的Java ini4j錯誤讀取文件

[Production] 
Code=I-MS01-11002 
Time=2012-01-25T15:58:50+02:00 
RequestType=Process Order 
OrderID=0183 

當我嘗試:

Wini ini = new Wini(fileList[i]); 
System.out.println(ini.keySet()); 

輸出是:

請告知我要去的地方錯了[,P,R 0 dü(C T)I O N'。

+0

的問題是什麼做的文件是這樣的保存。如果我在文本編輯器中打開文件,複製所有內容,並將其粘貼到一個新文件中,上面的代碼工作正常。 – 2012-01-27 12:07:26

回答

0

我發現原始文件保存爲UTF16格式。一個解決,這似乎工作,但可能無法做到這一點的最好辦法:

InputStream is = new BufferedInputStream(new FileInputStream(fileList[i])); 
Reader reader = new InputStreamReader(is, "UTF-16"); 
Ini ini = new Ini(); 
ini.load(reader); 
System.out.println(ini.keySet()); 

現在的輸出是:[製作]