System.in.read实际返回什么?

时间:2013-03-07 14:15:28

标签: java java-io

做什么:

System.in.read()

回归? documentation说:

返回: 数据的下一个字节,如果到达流的末尾,则为-1。

但是,例如,如果我输入:10我会回来49。那是为什么?

3 个答案:

答案 0 :(得分:13)

49是char 1的ASCII值。它是第一个字节的值。

在控制台或终端上输入 1 0 Enter 时产生的 stream 字节三个字节{49,48,10}(在我的Mac上,可能以10,12或12而不是10结束,具体取决于您的系统)。

所以简单片段的输出

int b = System.in.read();
while (b != -1) {
    System.out.println(b);
    b = System.in.read();
}
输入10并点击进入后,

是(在我的机器上)

49
48
10

答案 1 :(得分:5)

System.in.read()只读一个字节

49 1 Unicode 分值。

尝试打印:

System.out.println((char)49);

这将有助于您更多地了解它。

答案 2 :(得分:3)

当你输入10时,它不是一个整数,而是一个字符串,或者更确切地说,是一个字节数组。

49是字符1的ASCII码。

相关问题