gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 09:38:32 26 4
gpt4 key购买 nike

来自此链接“Writing to the OutputStream of Java Process/ProcessBuilder as pipe”并进行研究,我没有找到指定从 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 。将它们视为代码的输入/输出。据我了解,您想要获取in阅读器中的内容并将其输出到out。我不明白为什么您需要使用 ProcessgetOutputStream

从 Java 9 开始,有一个非常简单的解决方案,即 ReadertransferTo 方法。实际上,您可以将 Process 初始化后的所有内容替换为以下内容:

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

关于java - 有没有办法将从进程对象的 getOutPutStream() 方法获得的输出保存到文件中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57295894/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com