在 java 中,字节是有符号的(-128 到 127),这意味着输入流可以在未到达文件末尾的情况下读取 -1。
那么程序员如何知道输入流返回的 -1 是表示文件结束还是 -1 的实际字节值?
最佳答案
从 InputStream
读取时,the read
method不返回 byte
;它返回一个 int
。
The value byte is returned as an
int
in the range0
to255
. If no byte is available because the end of the stream has been reached, the value-1
is returned.
即使字节在 Java 中是有符号的,但这在这里并不重要,因为读取的字节被转换为可以存储大于 127 的值的 int
。这也意味着 到达流末尾的 -1
不会与从流中读取的值 255 混淆。
获得值后,您始终可以将 int
转换为 byte
以获得 -128 到 127 范围内的字节,这会将 255 转换为到-1。
关于java - Java 中文件结尾和字节值 -1 之间的区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56760137/