2016-04-12 1 views
1

ドキュメントは言う:BufferedReader.readLine()はEOFまたは遅い入力をどのように処理しますか?

readLine()は、テキストの行を読み込みます。行は、改行( '\ n')、復帰( '\ r')、改行の直後に続く改行のいずれかで終了すると見なされます。

は、入力と何よりも上の"hello"のようなものがある場合に\n文字が来る、またはそれがEOFか何かをrecognizinが可能になるまで、readLine()が待機する、ということを意味していますか?

入力が"Hello"の後に5秒後に表示される場合、関数は何を返しますか" world!"

+0

間違った質問をしているようです。あなたは何をしようとしているのですか?あなたは何を読んでおり、どのプロトコルが実装されていますか?あなたが "こんにちは"、その後5秒間何も読んでいない、そして "世界! – CodeCaster

答えて

3

「こんにちは」のようなものを入力し、より多くの何も上があるということを意味し、のreadLine()は\ n個まで待つことになるん:ここでは

は別の答えがあります文字が来る、またはそれはEOFか何かを認識できるか?

ラインターミネータまたはストリームの終わりが受信されるまで待機します。ストリームの終わりが受信された場合は、次の時刻に部分行が返され、nullとなります。

入力が「Hello」と表示され、5秒後に「world!」と表示される場合、関数は何を返しますか?あなたはソケットから読んでいると、あなたはそれがSocketTimeoutExceptionがスローされます短い5秒以上の読み取りタイムアウトを設定した

  1. 場合。
  2. EOLまたはEOSが「world!」と一緒に表示される場合設定されている場合は読み取りタイムアウト内に "Hello world!"が返されます。
  3. それ以外はブロックされます。
1

答えは、ドキュメントであっても多少の暗黙的なものの -

パブリック文字列のreadLine() は、IOExceptionがスローされます。 テキスト行を読み込みます。行は、改行( '\ n')、 改行( '\ r')、またはキャリッジリターンの直後に 改行のいずれかで終了すると見なされます。戻り値:任意の行の終端文字を含む行の内容を含む文字列、ない 、またはnull ストリームの終わりに

に達した場合、私は、これはそれがEOFを認識できることをヒントだと思いますあなたに戻り値としてnullを与えることによって。

How to see if a Reader is at EOF?