我正在尝试使用Kryonet进行通信来创建基本的IRC。我遇到的问题是,在我的代码中,我无法安全地拥有一个允许用户键入和发送消息的主while循环,因为Scanner发出错误并且似乎跳过调用nextLine()。我想要做的是让扫描仪在继续之前等待用户输入。
Scanner input = new Scanner(System.in);
while (running){
System.out.print(":");
message.text = input.nextLine();
client.sendTCP(message);
}
input.close();
更确切地说,该计划将首先提出一个":"在行的开头,然后在输入后将获得用户键入的任何内容,然后将其发送到服务器。 这是我得到的错误:
:Exception in thread "main" java.util.NoSuchElementException: No line found
at java.util.Scanner.nextLine(Scanner.java:1585)
at com.andrewlalisofficial.ChatClient.main(ChatClient.java:51)
答案 0 :(得分:2)
您正在关闭System.in
(通过Scanner
) - 请勿这样做。如果你关闭它,然后尝试使用新的Scanner
再次读取它,它将抛出你发布的异常。
答案 1 :(得分:0)
Scanner input = new Scanner(System.in);
while (true){
System.out.print(":");
String text = input.nextLine();
System.out.println(text);
}
这是在这里工作。