Java - java.io.File с Classpath - PullRequest
       8

Java - java.io.File с Classpath

0 голосов
/ 19 февраля 2019

Мне нужно использовать / определить тип переменной java.io.File, чтобы получить файл, который будет отправлен в качестве параметра другому методу.

Теперь у меня есть относительный путь:

File file = new File("C:/javaproject/src/main/resources/demo/test.txt");

Я хочу изменить его, используя ClassLoader следующим образом:

ClassLoader.getSystemResource("/demo/test.txt");

Но я не могу использовать его в File, потому что это не тот же тип.Если я использую .toString(), он возвращает NullPointerException:

java.lang.NullPointerException: null

И когда я печатаю его с выходом System, возвращаю то же самое, исключение: System.out.println (ClassLoader.getSystemResource ("demo / test.txt "). toString ());

И папка, и файл существуют. Почему эта ошибка?

1 Ответ

0 голосов
/ 19 февраля 2019

Вы можете сделать это:

try {
    URL resource = getClass().getClassLoader().getResource("demo/test.txt");
    if (nonNull(resource)) {
        File file = new File(resource.toURI());
        // do something
    }
} catch (URISyntaxException e) {
    LOGGER.error("Error while reading file", e);
}

Этот ответ показывает разницу между ClassLoader.getSystemResource и getClassLoader().getResource()

...