Java 扫描仪HasNextLine始终返回false
我在Scanner.hasNextLine()上遇到了一个奇怪的问题。 我不使用Scanner类,但我使用Scanner.hasNextLine()作为循环持续获取用户输入的条件,但在这部分代码中,它总是返回falseJava 扫描仪HasNextLine始终返回false,java,java.util.scanner,Java,Java.util.scanner,我在Scanner.hasNextLine()上遇到了一个奇怪的问题。 我不使用Scanner类,但我使用Scanner.hasNextLine()作为循环持续获取用户输入的条件,但在这部分代码中,它总是返回false public static void main(String[] args) throws IOException { String s = ""; Scanner ssc = new Scanner(System.in); Client cli = ne
public static void main(String[] args) throws IOException {
String s = "";
Scanner ssc = new Scanner(System.in);
Client cli = new Client();
cli.HLO();
Thread t = new Thread(new ThreadMessage(cli));//Thread that asks user for input using Scanner and closing it then
t.start();
boolean b = ssc.hasNextLine();
while (true) {
b = ssc.hasNextLine();
System.out.println(b);
if (b) {
s = ssc.nextLine();
System.out.println("you wrote" + s);
cli.dp.setData(s.getBytes());
cli.ds.send(cli.dp);
}
}
}
作为一个输入,我只有一个带false的循环行
有人知道它为什么会这样吗
编辑:似乎错误来自使用另一台扫描仪的HLO函数,我现在已将其删除,并正确显示了文字。尝试使用
.hasNext()
方法,而不是使用.hasNextLine()
方法。您遇到问题,因为如果此扫描仪的输入中有另一行,则
.hasNextLine()
方法将返回true。但是如果此扫描仪的输入中有另一个标记,则.hasNext()
方法返回true
请参阅:在我的例子中,一个代码中有多个Scanner(System.In)实例,几个人都会碰到它 如果其中一个实例调用“close”,它将对所有实例关闭,并且文件不会重新打开
调用close hasNextLine()后,始终将返回false。如果
hasNextLine
为false,为什么要重新输入循环?客户端和ThreadMessage
thread做什么?我看不到代码中有问题……我可以运行它succcessfully@MikeSamuel我添加了ThreadMessage的代码和客户端类的主体。如果只返回false,我将在我的第一个端口中添加此详细信息