Java 如何通过管道将OutputStream和InputStream传输到控制台?
运行进程时,如何将其输出输送到Java 如何通过管道将OutputStream和InputStream传输到控制台?,java,inputstream,outputstream,Java,Inputstream,Outputstream,运行进程时,如何将其输出输送到System.out,并将其输入到System.in: Process p = Runtime.getRuntime().exec("cubc.exe"); // do something with p.getOutputStream()) 编辑:我想我解释错了;我不想输入到程序中,我想让用户输入到程序中,我不想读取输出,我想让用户读取输出。从本质上讲,Java无法做到这一点。不过,您可以创建流程并使用它捕获输出,然后将其写入System.out.println。
System.out
,并将其输入到System.in
:
Process p = Runtime.getRuntime().exec("cubc.exe");
// do something with p.getOutputStream())
编辑:我想我解释错了;我不想输入到程序中,我想让用户输入到程序中,我不想读取输出,我想让用户读取输出。从本质上讲,Java无法做到这一点。不过,您可以创建流程并使用它捕获输出,然后将其写入System.out.println。除此之外,我认为没有其他方法。您可以通过以下方式获得输入:
Scanner scan = new Scanner(p.getInputStream());
关于输出流,您可以用相同的方式获取它,并使用System.out.*方法打印它:
OutputStream os = p.getOutputStream();
使用Apache中的类:
我认为
System.Console.WriteLine
是C#。它是Java.Downvoter中的System.out.println
,如果你不介意的话,请解释一下,我会被纠正的。我想我解释错了;我不想输入程序,我想让用户输入程序,我不想读取输出,我想让用户读取输出。@personak这是您想要的。进程
方法的命名有点混乱:getInputStream()
获取一个包含进程输出的输入流,它正被转发到系统。out
这里,这是您需要的。我明白了-这更有意义。
Process p = Runtime.getRuntime().exec("cubc.exe");
IOUtils.copy(p.getInputStream(), System.out);