为了账号安全,请及时绑定邮箱和手机立即绑定

字节流读取问题,-1标识怎么排除意外情况的?

字节流读取问题,-1标识怎么排除意外情况的?

needself 2015-10-17 15:05:57
FileInputStream in = new FileInputStream("demo/1.txt");int b = 0;while((b = in.read()) != -1){********}这段小代码应该没问题,我想问的就是,如果b是每次能读取的8位数据进行判断后,再进入循环体。那么,b这个32位的int型变量,在每一次读取时是不是就代表了每次只利用了b的32位里的低8位存储?如果文本中的数据刚好有个低8位就能表示为-1的数据,这时候b读取到怎么判断ta不是文本结束的标识而只是内容?这里文本结束标识的-1的2进制表示是 32位的么?
查看完整描述

1 回答

已采纳
?
天启之魂

TA贡献174条经验 获得超85个赞

8个字节能表示的int 字节值只能是0~255  即00000000 ~11111111  所以不可能出现刚好低八位表示为-1的数据

read()方法只有在读取 数据时 遇到数据的结尾标识 发现后面没有数据可读的情况下 才会返回-1

查看完整回答
反对 回复 2015-10-17
  • needself
    needself
    嗯,int类型规避了这个可能,难怪!谢谢!
  • 1 回答
  • 0 关注
  • 1433 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信