1

I / O、ファイル、ソケットについて学習していますが、この文の意味がわかりません

読み取りは常にバッファを満たすとは限りません

どういう意味ですか?誰か私に説明がありますか?

4

3 に答える 3

2
"read will not always fill a buffer"

上記の文は、いっぱいになると自動フラッシュされる特定のものがあることを意味しますBuffersizeバッファに読み込まれるデータがバッファをいっぱいにするのに十分ではないとします...次に、手動でフラッシュする必要があります。

詳細については、KathySierraSCJP Programmer guideまたはThinking in Java's IOの章を参照してください。

于 2012-08-13T11:17:52.050 に答える
1

read()メソッドは、ストリームまたはリーダーから入力するバイト配列を受け入れます。

バッファを満たすのに十分なデータがない場合は、次のいずれかを実行できます。

  • 十分なデータが利用可能になるまで待ちます
  • すぐに戻りますが、バッファを完全にいっぱいにすることなく、使用可能なデータのみを提供します。

標準の実装では、両方を組み合わせて実行します。少なくとも1バイトが使用可能になるまで待機します。

注:2番目のケースは、read()がデータなしで戻る可能性があることを意味します。

于 2012-08-13T11:20:04.083 に答える
1

少なくとも1バイトが使用可能になるまでブロックし、再度ブロックせずにその時点で読み取ることができるバイト数を返します。Javadocを参照してください。

于 2012-08-14T00:10:34.260 に答える