バッファリングされたリーダーから読み取る次の例があります。
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、コンパイラから別の苦情があります。報告されていない例外です。それで、なにかお手伝いできますか?