バッファリングされたリーダーから読み取る次の例があります。
while ((inputLine = input.readLine()) != null) {
System.out.println("I got a message from a client: " + inputLine);
}
ループ内のコードはprintln
、バッファリングされたリーダーに何かが現れるたびに実行されます (input
この場合)。私の場合、クライアント アプリケーションがソケットに何かを書き込むと、(サーバー アプリケーションの) ループ内のコードが実行されます。
しかし、私はそれがどのように機能するのか理解していません。inputLine = input.readLine()
バッファリングされたリーダーに何かが表示されるまで待機し、そこに何かが表示されると戻りtrue
、ループ内のコードが実行されます。ただし、いつnull
返品できますか。
別の質問があります。上記のコードはthrows Exception
、スレッドの実行メソッドでこのコードを使用するメソッドから取得したものです。そして、コンパイラが不平を言うthrows Exception
前に配置しようとするとrun
、オーバーライドされたメソッドは例外をスローしません。なしではthrows exception
、コンパイラから別の苦情があります。報告されていない例外です。それで、なにかお手伝いできますか?