我有一個具有中國字符的文件。我寫了一個讀取這個文件並使用FileInputStream/FileOutputStream(字節流)寫入另一個文件的Java代碼,它工作正常。但是,當我使用字符流FileReader/FileWriter時,問題即將到來。字讀/寫器的FileReader和FileWriter的無法讀/寫文件,中國而是字節讀/寫器工作正常
現在的問題是,如何才能使用只有8位能夠讀取中文字符的字節流,因爲我知道的是字節流一次讀取/寫入一個字節並使用一個字節,我們只能識別ASCII字符(即只有128個字符)。字符流(FileReader/FileWriter)使用16位讀/寫並且具有讀/寫漢字的能力,因此無法正確讀/寫文件。
你應該告訴我們你的代碼,但* *請注意,'FileInputStream'不關心你的文件存儲,它複製原始字節;當您打開已複製到您正在使用的工具(假設記事本)的文件時,正在應用將這些字節轉換爲人類可讀文本的編碼。 – Eugene
不一定兩個字節,它可能更多;例如,代理對。也幾乎可以肯定你所得到的編碼錯誤,在這裏看到一個提示:http://stackoverflow.com/questions/13350676/how-to-read-write-this-in-utf-8 – Eugene