bukkit里面除了默认的config.yml之外还可以自己创建其他的配置文件。
默认的对配置文件操作的几个方法只是针对config.yml,要想实现让其他的配置文件也能读取写出也是很简单的
下面2个静态方法就可以用来实现这个功能
public static FileConfiguration load(JavaPlugin plugin,String fileName) { File file = new File(plugin.getDataFolder(), fileName); if (!(file.exists())) {//不存在 try {//创建新的空文件 file.createNewFile(); } catch (IOException e) { e.printStackTrace(); } } return YamlConfiguration.loadConfiguration(file); } public static void saveDefaultConfig(JavaPlugin plugin,String fileName) { if (!new File(plugin.getDataFolder(), fileName).exists()) {//判断配置文件是否存在 InputStream in = plugin.getResource(fileName);//读取jar文件里面的配置文件 if (in == null) {//jar包里面没有这个配置文件 plugin.getLogger().info("插件配置文件" + fileName + "不存在,无法读取"); return; } //找到配置文件 File file = new File(plugin.getDataFolder(), fileName); int lastIndex = fileName.lastIndexOf('/'); //找到目录 File dir = new File(plugin.getDataFolder(), fileName.substring(0, lastIndex >= 0 ? lastIndex : 0)); if (!dir.exists()) {//判断是否村 dir.mkdirs();//创建目录 } try { //打开输出流 OutputStream out = new FileOutputStream(file); byte[] buf = new byte[1024]; int len; //循环写入到外面的配置去 while ((len = in.read(buf)) > 0) { out.write(buf, 0, len); } //关闭流 out.close(); in.close(); } catch (IOException ex) { return; } } }
上面2个方法实现了这个功能
load方法用于读取配置文件
saveDefaultConfig用于写出jar包里面的配置文件(前提是要存在)
然后在主类onEnable方法里面调用
public Configuration config;//用于保存读取的config public void onEnable(){ //先写出默认配置文件 Main.saveDefaultConfig(this,"data.yml"); //然后再读取配置文件 this.config = Main.load(this,"data.yml"); //获取 getLogger().info("a:"+this.config.getString("a")); getLogger().info("b:"+this.config.getInt("b")); getLogger().info("b:"+this.config.getBoolean("c")); }
1条评论登录后可见