簡體   English   中英

Java:I / O,read()不會填充緩沖區?

[英]Java: I/O, read() will not fill buffer?

我正在學習I / O,文件和套接字,我不明白這句話的意思

read不會總是填充緩沖區

這是什么意思? 有人對我有一些解釋嗎?

"read will not always fill a buffer"

上面的句子意味着Buffer有一定的size填充后 自動刷新 但是假設要讀入Buffer的數據不足以填充Buffer ...那么你需要手動刷新它。

有關詳細信息,請閱讀Kathy Sierra的SCJP Programmer guideThinking in Java's IO章節中的 Thinking in Java's

read()方法接受將從流或讀取器填充的字節數組。

如果沒有足夠的數據可用於填充緩沖區,則可以

  • 等到有足夠的數據可用
  • 立即返回但僅提供可用數據而不完全填充緩沖區。

標准實現混合了兩者:它等待至少有一個字節可用。

注意:第二種情況意味着read()可能在沒有任何數據的情況下返回。

它將阻塞,直到至少有一個字節可用,並返回該點可以讀取的字節數,而不會再次阻塞。 見Javadoc。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM