Repast:如何覆盖现有文件而不是在文本接收器中自动创建新文件

Repast: how to overwrite the existing file rather than auto-create a new file in text sink

我想知道如何覆盖现有文件而不是在文本接收器中自动创建新文件。

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

如何取消自动创建版本号并覆盖现有版本号(如果存在)。

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) 重命名或移动任何现有的输出文件到不同的文件夹。