代码之家  ›  专栏  ›  技术社区  ›  Georgi Michev

如何追加现有文件[副本]

  •  -1
  • Georgi Michev  · 技术社区  · 6 年前

    我正在尝试将控制台输入重定向到文件。问题是,每当我创建一个文件时,如果我选择包含unix时间戳的文件名,它就会覆盖它或创建新文件。我在这里看到了类似的问题,但我不确定使用哪种方法或类。

        PrintStream out;
        PrintStream oldout = new PrintStream(System.out);
    
        try {
            out = new PrintStream(
                    new FileOutputStream(
                            workFolder + File.separator + "output" + Instant.now().getEpochSecond() + ".txt"));
    
    
             System.setOut(out);
        } catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    System.setOut(oldout);
    

    所以如果没有一个文件来创建它,但是如果已经有一个文件来附加新数据,而不是覆盖或创建新文件。

    1 回复  |  直到 6 年前
        1
  •  -1
  •   Neeraj Jain    6 年前

    As per Java docs

    public FileOutputStream(String name,
                    boolean append)
                     throws FileNotFoundException
    

    参数:name-依赖于系统的文件名

    追加-如果为真, 然后字节将被写入文件的末尾,而不是 开始

    有一个构造函数允许传递布尔值,该值决定是否在文件中追加数据。

    你可以用它。