使用java从用户那里获取输入

时间:2013-06-16 23:50:52

标签: java input console

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

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

}

1 个答案:

答案 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打印的输出

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