我想将输出流设置为命令提示符,如下所示:
Process p = Runtime.getRuntime()
.exec("C:\\Windows\\System32\\cmd.exe /c start cls");
System.setOut(new PrintStream(p.getOutputStream()));
但它不起作用,为什么?
我想将输出流设置为命令提示符,如下所示:
Process p = Runtime.getRuntime()
.exec("C:\\Windows\\System32\\cmd.exe /c start cls");
System.setOut(new PrintStream(p.getOutputStream()));
但它不起作用,为什么?
默认情况下,PrintStream
s 不会自动刷新写入它们的内容。这意味着您写入它的数据不会立即发送到它所环绕的流中。但是,如果您构造PrintStream
using new PrintStream(p.getOutputStream(), true)
,它将在调用任何 println 方法、写入字节数组或写入换行符时自动刷新。这样,您写入的任何内容都将立即可供该进程访问。
请参阅http://docs.oracle.com/javase/7/docs/api/java/io/PrintStream.html