在Scanner中没有文本后,Java执行流程(循环中)冻结

时间:2016-11-11 16:13:11

标签: java loops java.util.scanner

我有扫描仪(在客户端上)从服务器获取信息,当服务器发送所有必需的字符串时,之后的所有代码都没有被执行(就像它暂停执行程序一样)。 示例(它循环并打印好,直到服务器发送所有数据,但是,当它完成时,它不执行打印或任何其他命令,即使在循环本身!):

while(scanner1.hasNextLine()){
     System.out.print("-- " + scanner1.nextLine());
}
 System.out.print("Something bla bla");

结果: - 数据1 - 数据2

不过,我是Java新手,所以如果我犯了任何愚蠢的错误,我道歉:)

1 个答案:

答案 0 :(得分:1)

程序正在等待遥控器发送行结束标记(例如'\ n'),或关闭其套接字输出流。但是,似乎服务器不发送它们中的任何一个。因此,您应该尝试使用client.getInputStream().read()

之类的内容,而不是在此处使用Scanner