InputStream 中 read() 和 readNBytes() 的区别:它们如何处理文件末尾和读取字节数?

inputstream 中 read() 和 readnbytes() 的区别:它们如何处理文件末尾和读取字节数?

InputStream 中 read() 和 readNBytes() 的区别

InputStream 中的 read() 和 readNBytes() 方法用于从流中读取字节。它们之间的主要区别在于读取字节的数量和处理文件末尾时返回的值。

read()

  • 读取最多 len 个字节或到达流的末尾。
  • 返回实际读取的字节数,或者在到达流的末尾时返回 -1。

readNBytes()

  • 尽可能读取 len 个字节,直到达到流的末尾。
  • 返回实际读取的字节数,即使到达流的末尾,返回的字节数也可能少于 len

因此,read() 可能会读取少于 len 个字节,而 readNBytes() 始终会尝试读取 len 个字节。

除了文本末尾再调用时,read() 返回值为 -1,readNBytes() 返回值为 0 外,readNBytes() 在读取字节方面更加激进,因为它会尝试尽可能多地读取字节。

以上就是InputStream 中 read() 和 readNBytes() 的区别:它们如何处理文件末尾和读取字节数?的详细内容,更多请关注其它相关文章!