A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 唐林渊 黑马帝   /  2012-3-21 23:59  /  1818 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

byte b = (byte)System.in.read();  是从键盘上读取        

返回值到底是int类型还是字符类型的,如果是字节 为什么byte b = (byte) System.in.read();  还要进行强转

评分

参与人数 1技术分 +1 收起 理由
老罗 + 1

查看全部评分

5 个回复

正序浏览
read()的返回值类型是int的。

所以要强转!
回复 使用道具 举报
的确,返回的是int,从大类型到小类型,就必须强制转化呀。
回复 使用道具 举报
public int read()
从此输入流中读取下一个数据字节。返回一个 0 到 255 范围内的 int 字节值。如果因为到达流末尾而没有可用的字节,则返回值 -1。
如果要用byte接收的话,就要转型。
你写的是一个字节一个字节的录入。
我觉得一般读取最好建立一个缓冲区。
回复 使用道具 举报
对比。BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
byte b = (byte)System.in.read();  
多了read()方法。
int------  system.in.read()
所以要强转一下。
回复 使用道具 举报
byte b = (byte) System.in.read();因为read方法返回值为int型,所以要进行强转即向下转型

评分

参与人数 1技术分 +1 收起 理由
老罗 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马