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

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位的么?

needself
浏览 1434回答 1
1回答

天启之魂

8个字节能表示的int 字节值只能是0~255  即00000000 ~11111111  所以不可能出现刚好低八位表示为-1的数据read()方法只有在读取 数据时 遇到数据的结尾标识 发现后面没有数据可读的情况下 才会返回-1
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java