![](/img/trans.png)
[英]Java - ObjectInputStream boolean assignment within while loop
[英]Assignment in a boolean expression of a while loop
我从Kathy Sierra和Bert Bates的Head First Java那里得到了这个问题。 在本书的“网络和线程”部分中,他们构建了一个聊天客户端并通过启动一个单独的线程来处理传入的消息:
public class IncomingReader implements Runnable {
public void run() {
String message;
try {
while ((message = reader.readLine()) != null) { //reader is a BufferedReader from an InputStreamReader of a Socket
System.out.println("read " + message);
incoming.append(message + "\n"); //incoming is a JTextArea they declared earlier
}
} catch (Exception ex) {ex.printStackTrace();}
}}
在他们设置了Swing GUI以及读取器和写入器之后,该线程仅启动一次。
所以我的问题是,该线程如何保持活力并继续监听传入的消息。 它不应该经过while循环并在message
为null
时死亡吗?
BufferedReader将继续读取输入,直到到达末尾为止。 但是,如果没有要读取的内容,它将继续循环或等待直到有输入为止。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.