的Javadoc此說:的BufferedWriter#寫(INT)的javadoc查詢
只寫oneChar整數的下兩個字節。
這對編寫已轉換爲int的非utf8編碼字符有什麼影響?
更新:
有問題的代碼從套接字接收數據,並將其寫入文件。 (很多事情發生在接收和寫入之間,所以我不能只使用我使用BufferedReader#readLine()得到的字符串。我正在使用Writer#write(char []),但這意味着我必須每次創建一個新的char數組。爲了避免每次創建一個數組,我有一個用-1填充的單個char數組(轉換爲char)。
然後我用TextUtils#getChars來填充它,如果需要的話擴大數組。對於寫入,我循環訪問數組,寫入Writer,直到char [i] ==(char)-1 == true。
我不明白你的更新。 TextUtils#getChars從CharacterSequence獲取輸入。爲什麼不直接使用Writer#append(CharSequence)編寫CharacterSequence? – sleske 2010-09-08 09:56:33
通常的做法是使用Reader#readLine()讀取,然後使用Writer.append進行寫入。如果因爲代碼的工作方式而無法執行此操作,則需要爲您的問題發佈一個自包含的代碼示例。否則,不可能理解你的約束並找到不同的解決方案。 – sleske 2010-09-08 09:57:10
Writer#append(charsequence)在寫之前使用toString,我不想每次都創建一個新的字符串。在readline()和寫入文件之間,使用解析器解析字符串,添加格式並對字符串執行各種操作。寫作僅在由應用程序狀態和消息類型確定的某些情況下發生,因此它必須從解析器中發生。我的問題是,我可以從一個iso-8859-1編碼字符串中取出字符串,將它們轉換爲int而不會丟失任何數據。 – 2010-09-08 17:38:36