我試圖只創建一個文件,如果舊版本不存在。Java文件自動覆蓋?
這是我有什麼,我相信是覆蓋它:
warningsFile = new File(plugin.getDataFolder(), "Warnings.yml");
warnings = YamlConfiguration.loadConfiguration(warningsFile);
這是在構造函數中,用於輔助類(非主要)。每當服務器重新加載(這是服務器)它似乎執行新的文件並覆蓋。有沒有更好的方法來解決這個問題?
我試圖只創建一個文件,如果舊版本不存在。Java文件自動覆蓋?
這是我有什麼,我相信是覆蓋它:
warningsFile = new File(plugin.getDataFolder(), "Warnings.yml");
warnings = YamlConfiguration.loadConfiguration(warningsFile);
這是在構造函數中,用於輔助類(非主要)。每當服務器重新加載(這是服務器)它似乎執行新的文件並覆蓋。有沒有更好的方法來解決這個問題?
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);
這個視頻我做了可能會幫助:
http://www.youtube.com/watch?feature=player_embedded&v=_Rntj7r8jTQ
(此服務器實現的瞭解)
您只需撥打:
plugin.saveResource("warnings.yml", false);
這將載入保存從你的jar文件中的warnings.yml(你需要把一個),和特定的false
不覆蓋文件。
我原來剛剛新建File();不會像上面那樣新建File(),創建文件? – Trevor
否。正如Oracle的JavaDocs所說,「File」類是「文件和目錄路徑名的抽象表示形式」。你可以用一個不存在的路徑實例化一個'File',它仍然可以工作。但是,如果您嘗試使用'listFiles()'文件夾並且該文件夾不存在,則顯然不起作用。 請參閱http://docs.oracle.com/javase/6/docs/api/java/io/File.html – nrubin29