BufferedInputStream.read中的off参数(byte [] b,int off,int len)

时间:2014-08-15 01:32:11

标签: java bufferedinputstream

javadoc说了以下内容。

Parameters:
    b - destination buffer.
    off - offset at which to start storing bytes.
    len - maximum number of bytes to read.

我想确认一下我对“开始存储字节的偏移量”的理解。这是否意味着off是“目标缓冲区b处开始存储字节的索引”?它听起来像off意味着它。我认为如果off是“在BufferedInputStream处开始读取字节的偏移量”,则该方法更有用,但我想确认一下。我试着查看源代码,但很难阅读。

一个附带问题:当读取1024个字节的流时,是否总是从流中删除所述的1024个字节?

2 个答案:

答案 0 :(得分:1)

是。 offb中的索引,其中流将开始输入len个字节。

  

当读取1024字节的流时,是否总是从流中删除所述1024字节?

使用InputStream,你不知道底下发生了什么。您所知道的是您可以使用的方法以及它们的作用(他们的文档说明了)。实现可以做任何他们想做的事情。

答案 1 :(得分:1)

  

这是否意味着off是“目标缓冲区b处开始存储字节的索引”?

它是documented:“读取的第一个字节存储在元素b[off]中。”

  

当读取1024字节的流时,是否总是从流中删除所述1024字节?

当然,但是如果你提供1024字节的缓冲区,你似乎真的要问是否总会读取1024个字节。答案是否定的。它是documented:“尝试读取至少一个字节”。