我是java的新手,所以我希望这将是一个容易回答的问题。
我正在修改一个基于控制台/文本的游戏,使其也有一些 GUI,游戏通常使用解析器中的扫描仪扫描用户输入。我从 Beanshell 2 添加了一个 JConsole 并使用 tukushans 方法重定向输出https://stackoverflow.com/a/1324525/1236210
但是,现在我需要学习如何将用户从该控制台输入的命令 < enter> 发送到解析器中的扫描仪。解析器中与此相关的代码是:
import java.util.Scanner;
public Parser()
{
reader = new Scanner(System.in);
}
...
String inputLine; // will hold the full input line
String word1 = null;
String word2 = null;
System.out.print("> "); // print prompt
inputLine = reader.nextLine();
// Find up to two words on the line.
Scanner tokenizer = new Scanner(inputLine);
if(tokenizer.hasNext()) {
word1 = tokenizer.next(); // get first word
if(tokenizer.hasNext()) {
word2 = tokenizer.next(); // get second word
// note: we just ignore the rest of the input line.
}
}
return etc.
我的主要问题是人们通常如何创建一个虚假的输入流并将其提供给像阅读器这样的扫描仪?
如果你能回答这个问题和/或将我重定向到好的文档,我会非常高兴 ^_^ 我希望有了这些知识,我自己会想办法将这个控制台连接到我的扫描仪。但是,如果您还回答了如何为 JConsole 执行此操作,那就太棒了,如果您这样做了,那么您还应该用Java 发布它 - 如何从 BeanShell 的 JConsole 读取用户输入?