InputStream read(byte []) 方法如何将数据存储为字节?
How does the InputStream read(byte []) method store data as bytes?
字节码的范围从 0 到 256(-1 表示 EOF),但是 java 字节变量的范围从 -128 到 128。该方法如何能够存储来自代码到字节变量?
我不确定你有什么不清楚的:
is.read(byte[])
读取 8 位值的数组。这些值已签名(-128..127,而不是“128”))这一事实无关紧要。
- 它不需要像 EOF 那样存储一个 out of band 值。它只是在 EOF 处停止读取。数组的
.length
是缓冲区大小 and/or 在 EOF 之前成功读取的#/bytes。
PS: 通常的做法是在调用 read() 之前查询文件大小并分配字节数组。
字节码的范围从 0 到 256(-1 表示 EOF),但是 java 字节变量的范围从 -128 到 128。该方法如何能够存储来自代码到字节变量?
我不确定你有什么不清楚的:
is.read(byte[])
读取 8 位值的数组。这些值已签名(-128..127,而不是“128”))这一事实无关紧要。- 它不需要像 EOF 那样存储一个 out of band 值。它只是在 EOF 处停止读取。数组的
.length
是缓冲区大小 and/or 在 EOF 之前成功读取的#/bytes。
PS: 通常的做法是在调用 read() 之前查询文件大小并分配字节数组。