【问题标题】:How to convert console data to text file in Java如何在 Java 中将控制台数据转换为文本文件
【发布时间】:2018-10-03 11:59:47
【问题描述】:

我正在尝试将控制台输出导出到文本文件。此输出也来自串行端口。但是,我做不到,它只打印一行。谁能帮我? 我写的代码如下。

 String input = new String(buffer, 0, len); // convert buffer to string
        myLinkedList = removeComma(input); //format string data 
        String[] array = myLinkedList.toArray(new String[myLinkedList.size()]); // put array the formatted data


        PrintStream fileOut = new PrintStream(new FileOutputStream("C:\\Users\\khas\\Desktop\\output.txt"));
        System.setOut(fileOut);
        for (int i = 0; i < array.length; i++) {
            System.out.print(array[i] + " ");

        }
        System.out.println("");

【问题讨论】:

  • 我建议改为使用 FileWriter
  • 它打印在一行中,但它打印了您需要的所有内容?
  • 您是否多次调用此方法?并且只显示最新信息?
  • @Stultuske 而不是 PrintStream?
  • @vmrvictor 我想打印控制台上的所有行

标签: java file fileoutputstream printstream


【解决方案1】:

它只打印一行

因为你使用System.out.print(array[i] + " ");

你可以改成System.out.println(array[i] + " ");

【讨论】:

  • 哦不,这是为了数据。因为数据以数组的形式出现。在这个循环之后,我还写了 System.out.println(" ");去下一行。
  • @BesteIskemleci 你说I couldn't do it。究竟是什么问题?
  • 它只打印一行。我想把所有的线都放在控制台上。
  • @Beste Iskemleci 您想将它们写入文件,也想在控制台上打印它们。问题是,它们已被放入文件中,但没有出现在控制台上。我说的对吗?
【解决方案2】:

您需要一个流来同时写入控制台和文件,您可以通过使用commons-ioTeeOutputStream 部分来创建此流,将流作为参数提供到控制台和流到文件

PrintStream original = System.out; //the stream of the console
FileOutputStream fileOut = new 
FileOutputStream("C:\\Users\\khas\\Desktop\\output.txt"); //the stream of your file


OutputStream outputtee = new TeeOutputStream(originalOut, fileOut); //join both streams
PrintStream printTee = new PrintStream(outputTee);
System.setOut(printTee); // and set as the default out

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-03-13
    • 2015-02-04
    • 2014-07-30
    • 1970-01-01
    • 2023-03-27
    • 2012-03-17
    • 2012-10-09
    相关资源
    最近更新 更多