【发布时间】:2014-09-25 02:18:19
【问题描述】:
http://docs.oracle.com/javase/7/docs/api/java/io/InputStream.html#read()
文档说“从输入流中读取一些字节并将它们存储到缓冲区数组 b。”。
Java 中的 InputStream read() 如何确定字节数?
【问题讨论】:
-
它尝试在不阻塞的情况下尽可能多地读取。例如,如果您正在处理 FileInputStream,Java 将要求操作系统为其提供与操作系统读取缓冲区中的字节数一样多的字节。
-
那么,只要缓冲区不满,它就尽可能多地读取?我认为文档不清楚。
-
你应该参考某个扩展 InputStream 的类。该特定方法是抽象的,因此它无法准确解释它将如何在扩展 InputStream 的流类上实现
-
实际上 InputStream 的文档并没有真正说它会尽可能多地阅读。只是如果可以的话,它至少会读取一个,并且最多可以读取到适合数组的多个。否则没有关于将阅读多少的承诺。可以是任何数字。
标签: java inputstream