文件结尾与Java中的-1字节值之间的区别?

ABC*_*123 4 java inputstream

在Java中,字节是带符号的(-128到127),这意味着输入流可以读取-1而不会到达文件末尾。

那么,程序员如何知道输入流返回的-1是表示文件末尾还是实际的字节值-1?

rge*_*man 5

从an读取时InputStreamread方法不会返回a byte;它返回一个int

值字节被返回作为int范围0255。如果由于已到达流的末尾而没有字节可用,-1则返回该值。

即使字节是用Java签名的,在这里也没关系,因为读取的字节被转换为int可以存储127以上的值的字节。这也意味着-1到达流的末尾不会与a混淆。从流中读取的值255。

一旦有了值,就可以始终将inta byte强制转换为a,以获取-128至127范围内的字节,这会将255转换为-1。