【发布时间】:2015-08-18 16:59:57
【问题描述】:
我正在尝试运行一个示例类,该类使用Observer 接口和Observable 子类来检查来自套接字的输入流何时不同于空字符串。这是代码(Observable 类):
@Override
public void run() {
String input;
while (true) {
try {
input = reader.readLine();
if (input != null) {
setChanged();
notifyObservers(input);
} else
System.out.println("Nothing read from the stream");
} catch (IOException e) {
}
}
}
因此,当条件input != null 为真时,调用update() 方法并将从套接字读取的内容输出到stdout。服务器每秒发送一个字符串,观察者以最大速度检查它(没有任何sleep() 调用)。那么,BufferedReader.readLine() 在从套接字拥有的流中读取时真正做了什么?因为else 块永远不会被执行。
【问题讨论】:
标签: java sockets stream observable