class myThread extends Thread {
myThread(Socket socket) {
Scanner sc = new Scanner(socket);
}
public void run() {
StringBuilder sb = new StringBuilder();
try {
while(sc.hasNext()) {
sb.append(sc.next());
sb.append(" ");
}
System.out.println(sb.toString());
} catch (Exception e) {
System.out.println(e);
}
}
此代码不输出任何内容。但是,如果我将System.out.println(sb.toString());
移动到while循环中,它会。
我不知道为什么会这样,但我需要在while循环完成后首先输出代码。
在while循环完成后如何打印StringBuilder.toString()?
答案 0 :(得分:5)
socket
可能永远不会被关闭,而scanner
只是在hasNext()
上阻止。
关闭socket
,它应该完成。