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()
,