一个
InputStream读出原始八位组(8位)的数据。在Java中,
byte类型等效
char于C中的类型。在C中,此类型可用于表示字符数据或二进制数据。在Java中,
char类型与C
wchar_t类型具有更大的相似性。
InputStreamReader然后,An 会将数据从某种编码转换为UTF-16。如果“ a你们”在磁盘上被编码为UTF-8,它将是字节序列
61E4 BD A0 E4 BBAC。当您使用UTF-8编码将传递
InputStream给
InputStreamReader时,它将作为char序列读取
0061 4F604EEC。
Java中的字符编码API包含执行此转换的算法。
您可以在此处找到Oracle
JRE支持的编码列表。在ICU项目是开始,如果你想了解的是如何工作的实践中,内部的好地方。
正如Alexander Pogrebnyak指出的那样,您几乎应该始终明确提供编码。未指定编码的
byte-to-
char方法依赖于JREdefault,后者取决于操作系统和用户设置。



