黑马程序员技术交流社区

标题: 求助 关于system.in.read [打印本页]

作者: 唐林渊    时间: 2012-3-21 23:59
标题: 求助 关于system.in.read
byte b = (byte)System.in.read();  是从键盘上读取        

返回值到底是int类型还是字符类型的,如果是字节 为什么byte b = (byte) System.in.read();  还要进行强转
作者: 田斌    时间: 2012-3-22 00:03
byte b = (byte) System.in.read();因为read方法返回值为int型,所以要进行强转即向下转型
作者: ♂诸侯♂    时间: 2012-3-22 00:29
对比。BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
byte b = (byte)System.in.read();  
多了read()方法。
int------  system.in.read()
所以要强转一下。
作者: 李敏    时间: 2012-3-22 01:07
public int read()
从此输入流中读取下一个数据字节。返回一个 0 到 255 范围内的 int 字节值。如果因为到达流末尾而没有可用的字节,则返回值 -1。
如果要用byte接收的话,就要转型。
你写的是一个字节一个字节的录入。
我觉得一般读取最好建立一个缓冲区。
作者: 朱亚安    时间: 2012-3-22 01:38
的确,返回的是int,从大类型到小类型,就必须强制转化呀。
作者: 刘元霄    时间: 2012-3-22 04:21
read()的返回值类型是int的。

所以要强转!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2