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