3

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

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

但它不起作用,为什么?

4

1 回答 1

0

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

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

于 2013-04-21T17:02:54.193 回答