System.in.read实际返回什么?
什么:
System.in.read()
回报? 该文件说:
返回:数据的下一个字节,如果到达stream的末尾,则返回-1。
但是,例如,如果我input: 10
我回来49
。 这是为什么 ?
49
是char 1
的ASCII值。 这是第一个字节的值。
input1时产生的字节stream在您的控制台或terminal上input的字节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
System.in.read()
只读取一个字节 。
49是1的Unicode点值。
尝试打印:
System.out.println((char)49);
这将帮助你更多地理解它。
当你input10
,它不是以整数forms读取,而是以stringforms读取,更确切地说是字节数组。
49是字符1
的ASCII码。