有没有办法将从进程对象的 getOutPutStream() 方法获得的输出保存到文件中

Is there a way to save the obtained output from a a process object's getOutPutStream() method into a file

来自这个link“”并进行研究我没有找到一种方法来指定从 getOutputStream() 写入进程输出的路径。

BufferedReader br = new BufferedReader(new FileReader(new File("commands.txt")));
        String[] input = br.readLine().split(" ");

        String cmd =  input[0] + " " + input[1] + " " + input[3];

        System.out.println(cmd);

        Process process = Runtime.getRuntime().exec(new String[]{"bash","-c", cmd});


        BufferedReader in = new BufferedReader(new InputStreamReader(process.getInputStream()));

        OutputStreamWriter out = new OutputStreamWriter(new FileOutputStream(input[3]));

        byte[] buf = new byte[1024];
        int len;

        while ( (len = in.read()) > 0) {
            // out.write();
        }

在代码中,exec 运行 一个连接两个文件结果的进程,现在我想将结果保存在一个新文件中。但是我找不到如何,因为进程中的 getOutPutStream 对象只有一种方法,使用以 int[] 作为参数的构造函数编写。提前感谢您的帮助。

我认为您混淆了这种情况下的 InputStreamOutputStream。将它们视为代码的 input/output 。据我了解,您想获取 in reader 中的内容并将其输出到 out。我不明白你为什么需要使用 ProcessgetOutputStream

从Java9开始,有一个很简单的解决方法,即ReadertransferTo方法。实际上,您可以在 Process 初始化后用以下内容替换所有内容:

process.getInputStream().transferTo(new FileOutputStream(input[3]))