2012-04-17 91 views
-2

当我尝试在我的程序中使用scanner.hasNextLine()时,它只是坐在那里并挂起。我想知道是否有任何方法可以解决这个问题或我可以使用的任何替代方案。 编辑:背后的原因是,我可以从扫描仪中删除一切(扫描仪将只有一条线)。因此,如果有办法从扫描仪中删除所有内容,那会更容易。为什么scanner.hasNextLine()挂起?

+1

你如何构建扫描仪?你的输入源是什么? – 2012-04-17 15:32:24

+5

你需要在这里放一些代码。 – 2012-04-17 15:32:27

+1

为什么你需要删除所有内容? scanner.close()? – 2012-04-17 15:34:51

回答

5

这是回答您的问题吗? StackOverFlow : why-does-hasnextline-never-end

如果不是,请将您的代码示例放在这里以获得关于您的问题的更具描述性的答案。很可能你正在阅读永不完结的东西。如果你有一个文件或一个字符串,你应该没有问题,但是如果你正在读取一个恒定的数据流,它可能会挂起,这取决于你的代码的写入方式和你读入扫描器的内容。

1

看的API java.util.scanner(我认为是你使用的是类

http://docs.oracle.com/javase/7/docs/api/java/util/Scanner.html

注意hasNextLine DOC:

返回true,如果没有输入另一行此方法可能会在等待输入时阻塞扫描器不会超过任何输入

(emp hasis mine)

所以,如果你有一个未关闭的开放流,它将阻塞直到另一行进入,或者流关闭。

+0

谢谢你告诉我我知道的东西......那么我该如何解决它? – 2012-04-17 15:37:33

+0

它没有破碎。它按预期工作。 “修复”取决于你想要做什么。 – 2012-04-17 15:38:54

+0

@ShawnShroyer - 你应该努力改进你的问题,然后再回答问题,以免给你确切的结果。 – 2012-04-17 15:44:07