我有一個程序,我在寫我正在使用另一家公司的圖書館從他們的網站下載一些報告。我想在將這些報告寫入文件之前解析這些報告,因爲如果它們符合某些標準,我想忽略它們。從Java.io.Reader獲取有意義的文本
問題是,他們的方法,稱爲download()返回一個java.io.Reader。唯一可用的方法是
int read(char[] cbuf);
打印此返回的數組使我失去意義的字符。我希望能夠確定我正在使用的字符集或將其轉換爲字節數組,但我無法弄清楚如何去做。我試過
//retrievedFile is my Reader object
char[] cbuf = new char[2048];
int numChars = retrievedFile.read(cbuf);
//I've tried other character sets, too
new String(cbuf).getBytes("UTF-8");
,我不敢向下轉換一個更有用的讀者,因爲我不知道是否相信這將工作或沒有。有什麼建議麼?
編輯
當我說它打印出「無意義的字符」,我的意思並不是說,它看起來像由喬恩斯基特給出的例子。這很難描述,因爲我現在不在我的機器上,但我認爲這是一個編碼問題。角色似乎有縮進和結構類似於報告的外觀。我會在週二回來後儘快嘗試這些建議(我只是一名實習生,所以我沒有爲設置遠程帳戶或任何其他事情而煩惱)。
你試過了'BufferedReader'嗎?沒有理由爲什麼它不應該工作... – fge 2011-12-30 20:49:48
如果'System.out.print(cbuf [i])'給你i = 0,1,2 ......的垃圾,那麼其他公司的lib有問題,或者你沒有配置好。 – 2011-12-30 21:02:05