当前位置: 代码迷 >> java >> Java-具有类路径的java.io.File
  详细解决方案

Java-具有类路径的java.io.File

热度:34   发布时间:2023-08-02 10:51:07.0

我需要使用/定义一个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.out.println(ClassLoader.getSystemResource(“ demo / test.txt”)。toString());

文件夹和文件都存在。 为什么会出错?

你可以这样做:

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.getSystemResourcegetClassLoader().getResource()之间的区别

  相关解决方案