首页 > 解决方案 > 从 Java 资源获取数据没有返回数据

问题描述

我有一个包含默认文件(.route)的程序。我将它存储在 jar 文件中:

src/
    resources/
        defaultRoute.route

这是我的代码:

public static final String DEFAULT_ROUTE;

static {

    URL resource = PathCreator.class.getResource("/resources/defaultRoute.route");

    String output = "";
    try {
        output = new String(Files.readAllBytes(Paths.get(resource.toURI())));
        System.out.println(output);
    } catch (IOException | URISyntaxException e) {
        e.printStackTrace();
        System.exit(-1);
    }

    DEFAULT_ROUTE = output;

}

但是,只有一个空字符串会打印到控制台。我唯一的猜测是文件路径是错误的,但是如果我更改它,我会得到一个空指针异常(所以我认为它是正确的)。我的目标是将文件复制到用户创建新路线的指定位置。我尝试了很多技术,所有这些都以目标文件为空而告终。(在这种技术中,字符串稍后会复制到新文件中。)

提前致谢!

如果您有兴趣,这里是 defaultRoute.route 文件的内容:

{
  "route": [],
  "start": {
    "x": "0.0",
    "y": "0.0",
    "angle": "0.0"
  }
}

标签: javafile

解决方案


您不应在资源路径中包含“资源”目录。尝试这个

PathCreator.class.getResource("/defaultRoute.route")

资源路径中的第一个“/”表示资源根目录(在您的情况下为“资源”)。


推荐阅读