Process
OutputStream从过程的角度来看,(我们的观点)是STDIN
OutputStream stdin = process.getOutputStream(); // write to this
因此,您所拥有的应该是正确的。
我的驱动程序(通过try-with-resources语句应用您自己的最佳实践)
public class ProcessWriter { public static void main(String[] args) throws Exception { ProcessBuilder builder = new ProcessBuilder("java", "Test"); builder.directory(new File("C:\Users\sotirios.delimanolis\Downloads")); Process process = builder.start(); OutputStream stdin = process.getOutputStream(); // <- Eh? InputStream stdout = process.getInputStream(); BufferedReader reader = new BufferedReader(new InputStreamReader(stdout)); BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(stdin)); writer.write("Sup buddy"); writer.flush(); writer.close(); Scanner scanner = new Scanner(stdout); while (scanner.hasNextLine()) { System.out.println(scanner.nextLine()); } }}我的应用程序
public class Test { public static void main(String[] args) throws Exception { Scanner console = new Scanner(System.in); System.out.println("heello World"); while(console.hasNextLine()) { System.out.println(console.nextLine()); } }}运行 驱动程序 打印
heello WorldSup buddy
由于某些原因,我需要
close()。该
flush()不会单独做到这一点。
*如果close()
您提供而不是,它也可以 *编辑
n。
所以用
writer.write("Sup buddy");writer.write("n");writer.write("this is moren");writer.flush();驱动程序打印
heello WorldSup buddythis is more



