如何在java中写入输入流

tjjdgumg  于 2021-06-30  发布在  Java
关注(0)|答案(3)|浏览(351)

假设我使用exec()函数在java中执行一个命令,并将引用存储在一个进程中。如何写入该进程的输入流

Process P = Runtime.getRuntime().exec("cmd /c start telnet"); 
System.out.println("done running .."); 
OutputStream output = P.getOutputStream(); 
BufferedOutputStream out = new BufferedOutputStream(output); 
String S = "open\n"; 
byte[] BS = S.getBytes(); 
out.write(BS); out.close();

我做了那件事,但没用。。。。。。。。。。以上是我的代码附件

ee7vknir

ee7vknir1#

我觉得你不需要 cmd /c 咬了你一口 exec 打电话。因为exec本身会为您生成一个shell。无论如何,java中的进程处理是一个真正的难题。如果可以的话,我建议您使用apacheexec包。它能帮你处理很多低级的疼痛。

ubby3x7f

ubby3x7f2#

看起来您实际上想要进程的outputstream,因为您想要向进程发送数据(除非我误解了您的问题)。
下面是一个例子。

dvtswwa3

dvtswwa33#

写入输出流而不是输入流:

Process p = Runtime.getRuntime().exec(..);
OutputStream os = p.getOutputStream();
BufferedWriter bos = new BufferedWriter(new OutputStreamWriter(os));
bos.write("whatever u want");

相关问题