1

一般的な読み取りインターフェイスを使用する機能を実装しています。CharBuffer を使用してデータを書き出す java.lang.Readable インターフェイスを使用しています。

それが言っていないのは、read呼び出しがブロックされるかどうかです。ただし、バッファに書き込まれた文字の量を返しますが、待機中の入力全体を書き込むのに十分なスペースがバッファに残っていなかったため、代わりにその一部のみが書き込まれたことも示している可能性があります。しかし、バッファーに十分なスペースがあるのに、入力がない (またはバッファーが保持できる文字よりも少ない) 場合はどうなるでしょうか? readゼロ (または小さい整数) を返すか、ブロックしますか?

4

2 に答える 2

2

はい、ブロックします。操作が完了すると、このメソッドはバッファに追加された char 値の数を返します。この文字ソースが最後にある場合は -1 を返します。

于 2012-10-02T14:39:03.333 に答える
1

ノンブロッキングの場合は、読み取り可能になったときに通知するメカニズムが必要です。したがって、非ブロッキングにすることはできません。

于 2012-10-02T14:57:35.847 に答える