【发布时间】:2014-09-05 09:42:46
【问题描述】:
我对输入流和输出流的使用感到困惑。来自堆栈溢出问题confused about stdin, stdout and stderr?:
标准输入 - 这是您的进程为从您那里获取信息而读取的文件句柄。
标准输出 - 您的进程将正常信息写入此文件句柄。
我试图使用 java 运行一个外部进程(一个 python 脚本)。这是一个交互式进程,需要用户输入。
现在正如概念所说:
当您的进程读取以从中获取信息时使用标准输入 你。
所以我应该从进程中获取输入流以将值写入它。我尝试了它并失败了。所以我搜索堆栈溢出给了我一个同样问题的问题,即从进程中获取输出流然后写入它。我试过了,效果很好。
我的问题是为什么它会起作用?不应该是输入流,我应该使用它来为该外部进程提供输入,或者我完全错误地理解输入流和输出流。
请通过简单的解释帮助我理解它。
编辑:我的代码是:
Process process=Runtime.getRuntime().exec("/usr/bin/python /home/abhijeet/test.py");
OutputStream stdin = process.getOutputStream ();
String line = "30" + "\n";
stdin.write(line.getBytes() );
【问题讨论】:
标签: java stream inputstream outputstream