Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/355.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何通过管道将OutputStream和InputStream传输到控制台?_Java_Inputstream_Outputstream - Fatal编程技术网

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);