本帖最后由 代臣 于 2012-4-1 12:57 编辑
read读取单个字符,不是一个字节。
read()方法的源代码(查看jdk安装目录下src.rar文件):
public int read() throws IOException {
char cb[] = new char[1];
if (read(cb, 0, 1) == -1)
return -1;
else
return cb[0];//返回的是char类型的值,而方法接收返回值类型为int,会自动提升为int类型。
}
java语言规定:当一个算数表达式中包含多个基本数据类型的值时,整个算数表达式的数据类型将发生自动提升。
自动提升规则如下:
1,所有byte型、short型、char型将被提升到int型;
2,数据类型的自动提升与表达式处在的等级有关,下面是我画的图:
希望对你有用。 |
|