Bukkit写出与读取其他配置文件
- 2016-12-15 13:05:05
- 幻音い
- 7913
温馨提示: 这篇文章于2897天前编写,现在可能不再适用或落后.
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"));
}
阁下需要登录后才可以查看评论哦~