0

我正在使用这种方法创建一个控制台

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) {

}
4

1 回答 1

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

尝试创建一个线程,将您的新控制台输出流打印到文件或某处,您将看到输出

于 2013-06-17T00:16:15.803 回答