【问题标题】:Write the console output over several runs to a text file [duplicate]将多次运行的控制台输出写入文本文件[重复]
【发布时间】:2013-07-13 08:41:12
【问题描述】:

我的问题与this one 有关。但是,我正在寻找一种在多次运行中附加文本文件的方法。有没有办法在不删除旧运行信息的情况下将控制台输出写入文本文件?我正在研究 30 多个课程,更改 System.out.println 语句会很乏味,所以我更喜欢坚持使用 System.setOut 解决方案。

我有以下基于@Mac 回答的代码

   PrintStream out = new PrintStream(new FileOutputStream("aa.txt"),true);
   System.setOut(out);

但是文件aa.txt没有附加结果,我在这里遗漏了什么吗?

【问题讨论】:

  • 几分钟内得到 3 个很好的答案真的是一个很大的惊喜。谢谢大家
  • 不,这不是那个问题的重复。仔细阅读 - 它要求的是完全不同的东西。
  • 你试过new PrintStream(new FileOutputStream("aa.txt",true)) 吗?正如我在对 Mac 答案的评论中所说,他/她的括号错了。

标签: java


【解决方案1】:

当您为文件创建FileWriterFileOutputStream 时,将true 作为第二个参数传递给FileWriterFileOutputStream 的构造函数。

FileWriter(File file, boolean append) 

【讨论】:

  • 我正在使用 PrintStream 但它没有附加
  • 粘贴您的代码,以便我们让您知道您做错了什么。
  • 我已经编辑了问题
【解决方案2】:

FileWriterFileOutputStream 提供带有 append 标志的构造函数。只需相应地修改引用的代码

【讨论】:

    【解决方案3】:

    你应该使用:

    PrintStream out = new PrintStream(new FileOutputStream("output.txt"),true);
    System.setOut(out);
    

    【讨论】:

    • 你确定吗?在我看来,你可能把括号放在了错误的地方。
    • @DavidWallace 复制粘贴了代码,它可以工作:)
    • @seteropere 但不如预期(无附加)
    猜你喜欢
    • 2012-02-01
    • 1970-01-01
    • 2012-12-18
    • 2014-03-08
    • 1970-01-01
    • 2017-09-30
    • 1970-01-01
    相关资源
    最近更新 更多