当前位置: 首页 > 知识库问答 >
问题:

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

丌官运诚
2023-03-14

通过这个链接“将Java Process/ProcessBuilder的OutputStream作为管道写入”,并进行研究,我没有找到一种方法来指定从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[]为参数的构造函数write方法。感谢您提前提供的任何帮助。

共有1个答案

吕霍英
2023-03-14

我认为您在这个场景中混淆了InputStreamOutputStream。将它们视为代码的输入/输出。根据我的理解,你想把读取器中的读入并输出到输出。我不明白为什么需要使用进程的getOutputStream

自Java 9以来,有一个非常简单的解决方案,即ReadertransferTo方法。实际上,您可以在过程初始化后用以下内容替换所有内容:

process.getInputStream(). transferTo(新的FileOutputStream(输入[3]))

 类似资料:
  • 我有一个CSV文件,我正在尝试导入MongoDB数据库中的CSV文件。不幸的是,这种体验并没有像我希望的那样工作。CSV文件的内容不相关,因为当我使用MongoDB Compass手动导入它时,没有问题,它按我想要的方式出现。因此,如果可能的话,我试图使用Java和Spring Boot将其从本地文件夹保存到MongoDB,但我找不到任何关于如何这样做的好建议或解释。 我用的是Spring Boo

  • 本文向大家介绍Java将对象保存到文件中/从文件中读取对象的方法,包括了Java将对象保存到文件中/从文件中读取对象的方法的使用技巧和注意事项,需要的朋友参考一下 1.保存对象到文件中 Java语言只能将实现了Serializable接口的类的对象保存到文件中,利用如下方法即可: 参数obj一定要实现Serializable接口,否则会抛出java.io.NotSerializableExcept

  • 问题内容: 是否有一组命令行选项可以说服gcc从自包含的源文件生成平面二进制文件?例如,假设foo.c的内容是 没有外部引用,没有要导出到链接器的内容。我想获得一个仅带此功能机器说明的小文件,而无需任何其他装饰。有点像(DOS).COM文件,但32位保护模式除外。 问题答案: 试试看: 您可以使用来确保它是正确的: 并与二进制文件进行比较:

  • 因为我是在中配置序列化程序的,所以我不能在构造函数参数中传递。

  • 我正在建立一个学生时间表生成器,我需要一种方法来产生一个以上的解决方案。有什么方法可以节省可行的分数或xhard/ysoft的分数吗? 我需要能够输出多个潜在的时间表,这样学生将有一个时间表的选择,而不是另一个,如果出于任何原因,他们不想要“最好的”时间表(也许他们不喜欢其中一个教授,也许他们不想要上午8点的课,无论什么) 我最初的想法是使用bestSolutionChanged事件侦听器省去所有

  • 问题内容: 我有一个文件,称之为。 有没有一种方法可以“读取”其中的内容,并获取其中的所有类的列表作为完整的类名,包括其包,例如? 我在考虑,但是似乎找不到用于检索整个类集的方法。 问题答案: 您可以将dexlib2库用作独立库(在maven中可用),以读取dex文件并获取类列表。 请注意,类名将采用“ Ljava / lang / String;”的形式,这就是它们如何存储在dex文件(和Jav