设置System.setOut();命令提示符

时间:2013-04-21 16:52:27

标签: java cmd runtime.exec

我想将输出流设置为命令提示符,如下所示:

Process p = Runtime.getRuntime()
              .exec("C:\\Windows\\System32\\cmd.exe /c start cls");
System.setOut(new PrintStream(p.getOutputStream()));

但它不起作用,为什么?

1 个答案:

答案 0 :(得分:0)

默认情况下,PrintStream s不会自动刷新写入它们的内容。这意味着您写入的数据不会立即发送到它所包含的流。但是,如果使用PrintStream构造new PrintStream(p.getOutputStream(), true),则在调用任何println方法,写入字节数组或写入换行符时,它将自动刷新。这样,您写入的任何内容都将立即被该进程访问。

请参阅http://docs.oracle.com/javase/7/docs/api/java/io/PrintStream.html