我有以下从缓冲阅读器读取的示例:
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
我在 Thread 的 run 方法中使用了这个代码。而当我试图在编译器抱怨throws Exception
之前放run
:被覆盖的方法不会抛出异常。如果没有throws exception
编译器,我还有另一个抱怨:未报告的异常。那么,我能做些什么呢?