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码。