我正在尝试使用要在SnakeYAML上使用的InputStream打开YAML文件。 尽管我遇到了问题,但无论尝试什么,该文件始终为空,这是我的代码:
this.configFile = new File("config.yml");
this.yaml = new Yaml();
if (!configFile.exists()) {
try {
configFile.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
}
InputStream inputStream = this.getClass()
.getClassLoader()
.getResourceAsStream(configFile.getName());
Map<String, Object> obj = yaml.load(inputStream);
System.out.println(obj);
我尝试直接键入“ config.yml”而不是“ configFile.getName()”,我什至尝试了System.getProperty("user.dir") + configFile.getName()
,但是它总是返回null并给出错误org.yaml.snakeyaml.error.YAMLException: java.io.IOException: Stream closed
。
答案 0 :(得分:0)
使用'/'
时,您需要添加System.getProperty("user.dir")
以指定正确的路径。
所以,也许你必须写
System.getProperty("user.dir") + "/" + configFile.getName()
。