我正在学习 I/O、Files 和 Sockets,但我不明白这句话的意思
读取不会总是填满缓冲区
这是什么意思?有人对我有什么解释吗?
"read will not always fill a buffer"
上面这句话的意思是Buffer
有一定的,填充的时候size
是AutoFlushed,但是假设要读入Buffer的数据不足以填充Buffer ……那么就需要手动flush了。
有关更多详细信息,请阅读SCJP Programmer guide
Kathy Sierra 或Thinking in Java's
IO 章节。
read() 方法接受一个字节数组,它将从流或读取器中填充。
如果没有足够的数据来填充缓冲区,它可以
标准实现混合了两者:它等待至少一个字节可用。
注意:第二种情况意味着 read() 可能在没有任何数据的情况下返回。
它将阻塞直到至少有一个字节可用,并返回在该点可以读取的字节数而不会再次阻塞。请参阅 Javadoc。