我想知道如何覆盖现有文件而不是在文本接收器中自动创建一个新文件。
例如,如果我运行模型两次,它会创建两个文件。第二个文件使用相同的定义文件名创建,但名称后面有一个新数字,例如modelouput.txt、modeloutput.0.txt、modeloutput.1.txt。
如何摆脱这种自动创建版本号,如果存在就覆盖现有的版本号。
我想知道如何覆盖现有文件而不是在文本接收器中自动创建一个新文件。
例如,如果我运行模型两次,它会创建两个文件。第二个文件使用相同的定义文件名创建,但名称后面有一个新数字,例如modelouput.txt、modeloutput.0.txt、modeloutput.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) 将任何现有输出文件重命名或移动到不同的文件夹。