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
添加回答
举报
0/150
提交
取消