我正在使用此方法创建一个控制台
MessageConsole console = new MessageConsole("", null);
console.activate();
ConsolePlugin.getDefault().getConsoleManager()
.addConsoles(new IConsole[] { console });
MessageConsoleStream stream = console.newMessageStream();
System.setOut(new PrintStream(stream, true));
我尝试了用于输入的常规方法,但它无法正常工作 这是我试过的代码
[1]这会打印'输入字符串',但不允许您在控制台中写入
Scanner in = new Scanner(System.in);
System.out.println("Enter a string");
String s = in.nextLine();
System.out.println("You entered string " + s);
[2]并打印null
BufferedReader columnInput = new BufferedReader(new InputStreamReader(
System.in));
try {
System.out.println(columnInput.readLine());
// System.out.println("#read mflkerf: " );
} catch (IOException e) {
}
答案 0 :(得分:0)
您的第一个代码段:
Scanner in = new Scanner(System.in);
System.out.println("Enter a string");
String s = in.nextLine();
System.out.println("You entered string " + s);
确实有效。我猜是因为你使用System.setOut
重新分配标准输出流,你不再看到System.out.println
打印的输出
尝试创建一个将新控制台输出流打印到文件或某个地方的线程,您将看到输出