由于某种原因,此代码仅在我关闭输出流时才有效。我怎样才能让它工作而不必关闭它?
我想让它保持打开状态,这样我就可以继续向进程发送数据而无需重新启动它。
ProcessBuilder pbuilder = new ProcessBuilder(procCmds);
pbuilder.directory(new File(workingDir));
Process p = pbuilder.start();
BufferedWriter outputStream = new BufferedWriter(new OutputStreamWriter(p.getOutputStream()));
String str = "hello world heard from java\n";
outputStream.write(str, 0, str.length());
outputStream.flush();
System.out.println("wrote " + str);
BufferedReader errorStream = new BufferedReader(new InputStreamReader(p.getErrorStream()));
BufferedReader inputStream = new BufferedReader(new InputStreamReader(p.getInputStream()));
String line = null;
while((line=errorStream.readLine())!=null)
System.out.println(line);
while((line=inputStream.readLine())!=null)
System.out.println(line);
//p.waitFor();
outputStream.close();
errorStream.close();
inputStream.close();