gpt4 book ai didi

java - 如何在 Java 中执行命令并将其输出重定向到文件

转载 作者:行者123 更新时间:2023-12-01 20:23:16 25 4
gpt4 key购买 nike

基本上,我想用 Java 执行与以下 Scala 代码相同的操作。

command #> new java.io.File(outputFileName) !

或者相当于 Python 中的以下内容。

os.system(command + " > " + outputFileName)

我想出了以下代码。够好吗?即使是这样,还有更简单的方法吗?

String [] Command = new String[...];
Command[0] = ...
Command[1] = ...
...

Process proc = Runtime.getRuntime().exec(Command);

BufferedReader br = new BufferedReader(new InputStreamReader (proc.getInputStream()));

String line;
PrintWriter pw = new PrintWriter(outputFileName);
while ((line = br.readLine()) != null)
pw.write(line);
pw.close();

最佳答案

I came up with the following code. Is it good enough?

这是一个主观评价。我们不在这里执行这些操作。

And even if it, is there any simpler way for it?

使用 ProcessBuilder 会干净得多而不是 Runtime.exec()。除此之外,ProcessBuilder 还直接支持 I/O 重定向。您尝试做的事情可能如下所示:

String [] command = new String[] { "command", "-arg1", "-arg2" };

Process proc = new ProcessBuilder(command)
.redirectOutput(new File(outputFileName))
.start();

除了更短、更干净之外,它可能也更高效,因为进程的输出将直接进入指定的文件,而不必读入 Java,然后写回。

关于java - 如何在 Java 中执行命令并将其输出重定向到文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44269288/

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