InputStream не может найти файл

Я пытаюсь открыть файл YAML, используя InputStream для использования на SnakeYAML. Хотя я столкнулся с проблемой, файл всегда имеет значение null, независимо от того, что я пробовал, вот мой код:

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() но он всегда возвращает ноль и выдает ошибку org.yaml.snakeyaml.error.YAMLException: java.io.IOException: Stream closed,

Я уверен, что файл существует, поскольку я могу видеть его и редактировать, и он находится в папке проекта, я просто не могу получить к нему доступ.
введите описание изображения здесь введите описание изображения здесь

1 ответ

Вам нужно добавить '/' для указания правильного пути при использовании System.getProperty("user.dir"),

Так что, возможно, вам придется написать

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

Другие вопросы по тегам