黑马程序员技术交流社区

标题: 请教输入流的问题~~ [打印本页]

作者: kansyoukyou    时间: 2016-9-29 21:38
标题: 请教输入流的问题~~
为什么从输入流中读取的数据字节的返回值会是int类型的?
[size=-1] int
read()
          从此输入流中读取一个数据字节。


作者: 杜亚超    时间: 2016-9-29 22:22
public int read()       ,返回类型是int
作者: Zzh94520    时间: 2016-9-29 22:35
...................
作者: kansyoukyou    时间: 2016-9-30 08:48
Zzh94520 发表于 2016-9-29 22:35
...................

求告知~~~~
作者: yuanchao    时间: 2016-9-30 09:16
查看API,这是他们定义的
作者: bluehat    时间: 2016-9-30 09:42
它返回的是读取字节数组的长度或一个字节的编码

作者: ygxybyb    时间: 2016-9-30 10:41
因为读得是字节的编码,而这字节的编码都是大于0的,当结束时会返回-1,因此选整型作为返回值比较合适
作者: 小泥人    时间: 2016-9-30 12:44
好像表示读入的个数
作者: kansyoukyou    时间: 2016-9-30 17:26
ygxybyb 发表于 2016-9-30 10:41
因为读得是字节的编码,而这字节的编码都是大于0的,当结束时会返回-1,因此选整型作为返回值比较合适 ...

感觉是这样哎~~·谢谢了~~~
作者: Zzh94520    时间: 2016-9-30 21:03
理论上是把byte型提升为int型,也就是在单个字节前补0,在输出流调用write方法时,去掉前面三个字节,应该是为了保证数据的原样性吧,如果读到11111111(这是-1在内存中的二进制存储形式)这样的就直接不读了
作者: kansyoukyou    时间: 2016-9-30 22:19
Zzh94520 发表于 2016-9-30 21:03
理论上是把byte型提升为int型,也就是在单个字节前补0,在输出流调用write方法时,去掉前面三个字节,应该 ...

瓦萨,这个更全面,谢谢好人~~~~
作者: Jarc    时间: 2016-9-30 22:21
学习了。。。
作者: 杨杰锋    时间: 2016-9-30 22:35
学习学习




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