转载:如何在文本汇中覆盖现有文件,而不是自动创建新文件

问题描述 投票:1回答:1

我想知道如何覆盖现有的文件,而不是在文本汇中自动创建一个新文件。

例如,如果我运行模型两次,它会创建两个文件。第二个文件是使用相同的定义文件名创建的,但是在名字后面有一个新的数字,例如:modelouput.txt,modeloutput.0.txt,modeloutput.1.txt。

如何摆脱这种自动创建版本号的方式,如果存在的话,直接覆盖现有的版本号。

repast-simphony
1个回答
1
投票

在Repast GUI FileSink中没有覆盖现有文件的选项,但是你可以在你的代码中直接删除文件。 你可以在你的上下文构建器中添加以下代码,它将在运行开始时删除modeloutput.txt文件,这样FileSink将始终只是制作一个同名的新文件。

Path path_to_delete = Paths.get("output", "ModelOutput.txt");

    if (Files.exists(path_to_delete)) try {
        Files.delete(path_to_delete);
    } catch (IOException e) {

        e.printStackTrace();
    }

或者,你可以使用Files.move(existingFilePath,newFilePath) 来重命名或移动任何现有的输出文件到不同的文件夹。

© www.soinside.com 2019 - 2024. All rights reserved.