从java文档这里中可以看出:
字符流使用字节流执行物理I/O,,而字符流处理字符和字节之间的转换()。
当字符流类 read()和write()字节(2)和字节流类一样,但每次都返回整数类型(可以映射到charE 214)时,这是如何发生的。
-
发布于 2020-04-09 10:52:51
byte, InputStream/OutputStream;String, char (UTF-162个字节), Reader/Writer。这意味着应该始终在两者之间进行转换,使用二进制数据的字符集编码。
令人恼火的是:
InputStream.read()返回一个int:字节值,或-1 =文件结束.在Windows环境下,单字节编码具有相同的前128个字符(纯7位ASCII,StandardCharsets.US_ASCII )。但剩下的128个字节不同(希腊语、俄语、斯洛瓦基语、挪威语等)。
Java决定在内部使用Unicode,因此所有脚本都可以组合在一个字符串中。
因此,总有一个转换。字符串不应用于非文本二进制数据。
https://stackoverflow.com/questions/61118790
复制相似问题