读取jar包外的yml文件
时间: 2023-07-18 17:30:06 浏览: 62
在 Java 中读取 jar 包外的 yml 文件,可以使用 InputStream 或者 ClassLoader 来读取。下面介绍两种常用的方法:
1. 使用 InputStream
```java
InputStream inputStream = new FileInputStream(new File("config.yml"));
Yaml yaml = new Yaml();
Map<String, Object> obj = yaml.load(inputStream);
```
其中,config.yml 是你的配置文件名,需要和 jar 包放在同一目录下。通过 FileInputStream 类读取文件,然后使用 Yaml 类的 load 方法将配置文件内容加载到 Map 对象中。
2. 使用 ClassLoader
```java
InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("config.yml");
Yaml yaml = new Yaml();
Map<String, Object> obj = yaml.load(inputStream);
```
其中,config.yml 是你的配置文件名,需要和 jar 包放在同一目录下。通过 getClassLoader().getResourceAsStream() 方法读取文件,然后使用 Yaml 类的 load 方法将配置文件内容加载到 Map 对象中。
需要注意的是,在使用 getClassLoader().getResourceAsStream() 方法读取文件时,文件名前不需要加斜杠。例如:如果配置文件名为 "config.yml",则应该写成 "getClassLoader().getResourceAsStream("config.yml")",而不是 "getClassLoader().getResourceAsStream("/config.yml")"。
读取完成后,可以通过 Map 对象获取配置信息。例如:
```java
String value = (String) obj.get("key");
```
其中,key 是你需要获取的属性名。需要注意的是,在使用 Map 对象获取属性值时,需要强制类型转换。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)