是否可以修改InputStream中请求读取但实际未读取到的字节?

问题描述 投票:0回答:1

在JDK官方文档中,

java.io.InputStream#read(byte[], int, int)
说:

设k为实际读取的字节数;这些字节将存储在元素 b[off] 到 b[off+k-1] 中,元素 b[off+k] 到 b[off+len-1] 不受影响。

但这句话过后,下一段说:

在每种情况下,元素 b[0] 到 b[off-1] 和元素 b[off+len] 到 b[b.length-1] 不受影响。

第一句要求对读操作有更强的限制。

文档说“不受影响”。我将其解释为在读取操作期间无法修改它。但即使是b[off+k]~b[off+len-1]也是无法修改的?

java inputstream
1个回答
0
投票

缓冲区

b
在概念上分为以下几个部分:

  • 0
    off-1
    :这些字节不受影响(2.段落)
  • off
    off+k-1
    :这些包含已读取的字节(1.段落)
  • off+k
    off+len-1
    :这个范围包含在读取请求中,但由于数据不足而没有改变(1.段落)
  • off+len
    off+b.length-1
    :这些字节不受影响(2.段落)

这四个范围之间没有重叠。

© www.soinside.com 2019 - 2024. All rights reserved.