InputStream找不到文件

时间:2018-09-30 14:42:38

标签: java file inputstream snakeyaml

我正在尝试使用要在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

我确定该文件存在,因为我可以看到它并进行编辑,并且它位于项目文件夹中,但似乎无法访问它。
enter image description here enter image description here

1 个答案:

答案 0 :(得分:0)

使用'/'时,您需要添加System.getProperty("user.dir")以指定正确的路径。

所以,也许你必须写

System.getProperty("user.dir") + "/" + configFile.getName()