Java文件自动覆盖?
我试图仅在旧版本不存在时创建一个文件 这就是我所拥有的,我相信正在覆盖它:Java文件自动覆盖?,java,file,yaml,Java,File,Yaml,我试图仅在旧版本不存在时创建一个文件 这就是我所拥有的,我相信正在覆盖它: warningsFile = new File(plugin.getDataFolder(), "Warnings.yml"); warnings = YamlConfiguration.loadConfiguration(warningsFile); 这是在构造函数中,用于辅助类(非main)。无论何时重新加载服务器(这是针对服务器),它都会执行新文件并覆盖。有没有更好的办法 warningsFile = new F
warningsFile = new File(plugin.getDataFolder(), "Warnings.yml");
warnings = YamlConfiguration.loadConfiguration(warningsFile);
这是在构造函数中,用于辅助类(非main)。无论何时重新加载服务器(这是针对服务器),它都会执行新文件并覆盖。有没有更好的办法
warningsFile = new File(plugin.getDataFolder(), "Warnings.yml");
if(!warningsFile.exists()) {
try {
warningsFile.createNewFile();
}
catch (Exception e) {
Bukkit.getServer().getConsoleSender().sendMessage(ChatColor.RED + "Couldn't create warnings.yml. Error: " + e.getMessage());
}
}
warnings = YamlConfiguration.loadConfiguration(warningsFile);
- 首先,我们实例化文件的一个实例。如果文件不存在, 我们试图创造它
- 如果失败,我们会告诉控制台
- 最后,我们 从该文件加载YAML配置
plugin.saveResource("warnings.yml", false);
这将从JAR文件中加载一个已保存的warnings.yml(您需要在其中放置一个),并且
false
指定不覆盖该文件。我最初只有一个新文件();新文件()不会像上面那样创建文件吗?不会。正如Oracle的JavaDocs所说,文件
类是文件和目录路径名的抽象表示。您可以实例化一个路径不存在的文件
,它仍然可以工作。但是,如果您试图listFiles()
,但文件夹不存在,则显然无法工作。看见