循环遍历多个 YAML 文件以查找特定数据
Looping through multiple YAML files to find specific data
我想问一下,如何循环遍历 YAML 文件以找到所需的数据?
我的情况:我有一个 Spigot/Bukkit 服务器,它有一个文件夹,里面装满了很多文件。我需要做的是在插件中分别浏览这些文件中的每一个,以查找哪个文件包含我需要的数据。我怎样才能做到这一点?
您可以使用以下方式循环访问文件:
YamlConfiguration config = new YamlConfiguration();
File[] files = this.getDataFolder().listFiles();
for(File file : files){
try {
config.load(file);
if(config.contains("Path")){
//What you need to do.
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (InvalidConfigurationException e) {
e.printStackTrace();
}
}
加载它们然后循环加载它们,然后检查它们是否包含您需要的路径。但是,您可能需要指定一个文件夹,为此只需在 for 循环中执行一个语句,例如:
file = new File(file.getAbsolutePath() + File.separator + "FOLDER_NAME");
但实际上最后一部分是为了防止您有其他类型的文件。如果您不小心,最终可能会出现异常。一般来说,您所做的通常不是必需的,并且很可能有更好的解决方案。不过只是回答你的问题。
我想问一下,如何循环遍历 YAML 文件以找到所需的数据?
我的情况:我有一个 Spigot/Bukkit 服务器,它有一个文件夹,里面装满了很多文件。我需要做的是在插件中分别浏览这些文件中的每一个,以查找哪个文件包含我需要的数据。我怎样才能做到这一点?
您可以使用以下方式循环访问文件:
YamlConfiguration config = new YamlConfiguration();
File[] files = this.getDataFolder().listFiles();
for(File file : files){
try {
config.load(file);
if(config.contains("Path")){
//What you need to do.
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (InvalidConfigurationException e) {
e.printStackTrace();
}
}
加载它们然后循环加载它们,然后检查它们是否包含您需要的路径。但是,您可能需要指定一个文件夹,为此只需在 for 循环中执行一个语句,例如:
file = new File(file.getAbsolutePath() + File.separator + "FOLDER_NAME");
但实际上最后一部分是为了防止您有其他类型的文件。如果您不小心,最终可能会出现异常。一般来说,您所做的通常不是必需的,并且很可能有更好的解决方案。不过只是回答你的问题。