多个配置文件 - FileConfiguration类
注: 本章需要读者了解关于 java.io 的一些基本知识, 如 File, InputStream 的基本运用,还有 YAML 语法
学习目标
- 了解BukkitAPI中配置文件的结构
- 理解FileConfiguration的基本操作
了解BukkitAPI中配置文件的结构
在上一章中,我们知道 JavaPlugin#getConfig() 返回的是 FileConfiguration 类的对象,那么我们要怎么获取一个.yml文件的 FileConfiguration 对象呢?
首先我们来看一下 org.bukkit.configuration 这个包, 这个包里保存的是Bukkit对于配置文件的相关处理
我们可以从下图了解其结构
从图中我们可以看出 YamlConfiguration 继承了 FileConfiguration,FileConfiguration 继承于 MemoryConfiguration
- YamlConfiguration (提供了外部读取文件的操作)
- FileConfiguration (提供了读取和保存的操作)
- MemoryConfiguration (提供了增删改查的一些操作)
如果我们要获取一个.yml文件的话我们可以使用
YamlConfiguration 里的静态方法 loadConfiguration(File file)
File file = new File(getDataFolder(), "config.yml");
YamlConfiguration config = YamlConfiguration.loadConfiguration(file);
// 当然上方的代码我们可以换成
FileConfiguration config = YamlConfiguration.loadConfiguration(file);
那么这样我们就可以获得到这个.yml文件的 FileConfiguration
对象
理解FileConfiguration的基本操作
那么上方的代码我们获得了一个跟 getConfig() 返回值一样的一个对象,那么我们其实就跟 getConfig() 已经操作就行了~
保存
File file = new File(getDataFolder(), "config.yml");
FileConfiguration config = YamlConfiguration.loadConfiguration(file);
// 那么我们想保存这个 "config" 的话我们需要做以下的操作
// 这一步会导致 IOException!! 我们可以用 try catch 做一些相关的操作~
config.save(file);