我正在学习I / O,文件和套接字,我不明白这句话的含义
读取并不总是填充缓冲区
这是什么意思?有人对我有一些解释吗?
答案 0 :(得分:2)
"read will not always fill a buffer"
上述句子表示Buffer
有一个size
填充后自动刷新但是假设读入缓冲区的数据不够填写缓冲区 ...然后你需要手动冲洗它。
有关详细信息,请阅读Kathy Sierra的SCJP Programmer guide
或Thinking in Java's
IO章。
答案 1 :(得分:1)
read()方法接受一个将从流或读取器填充的字节数组。
如果没有足够的数据可用于填充缓冲区,则可以
标准实现混合了两者:它等待至少有一个字节可用。
注意:第二种情况意味着read()可能在没有任何数据的情况下返回。
答案 2 :(得分:1)
它将阻塞,直到至少有一个字节可用,并返回可在该点读取的字节数,而不会再次阻塞。见Javadoc。