我有一个具有中国字符的文件。我写了一个读取这个文件并使用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