如何将OutputStream和InputStream传递给控制台?

时间:2011-07-12 21:54:08

标签: java inputstream outputstream

运行流程时,如何将其输出传输到System.out并将其输入到System.in

Process p = Runtime.getRuntime().exec("cubc.exe");
// do something with p.getOutputStream())
编辑:我想我解释了这个错误;我不想输入程序,我希望用户输入程序,我不想读取输出,我希望用户读取输出。

3 个答案:

答案 0 :(得分:10)

使用Apache IOUtils中的Commons IO类:

Process p = Runtime.getRuntime().exec("cubc.exe");
IOUtils.copy(p.getInputStream(), System.out);

答案 1 :(得分:2)

您可以通过这种方式获得输入:

Scanner scan = new Scanner(p.getInputStream());

关于输出流,您可以以相同的方式获取它,并使用 System.out。* 方法打印它:

OutputStream os = p.getOutputStream();

答案 2 :(得分:-3)

本身你不能用Java真正做到这一点。您可以做的是创建您的进程并使用PipedOutputStream来捕获输出,然后将其写入System.out.println。除此之外,我认为没有其他办法。