java - 从 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"
}
}
解决方案
您不应在资源路径中包含“资源”目录。尝试这个
PathCreator.class.getResource("/defaultRoute.route")
资源路径中的第一个“/”表示资源根目录(在您的情况下为“资源”)。
推荐阅读
- php - Laravel (v5.2.45) 播种器和双引号
- javascript - 当用户在 textarea 中点击“输入”时,如何在 MySql 中添加新行?
- android - 麻省理工学院应用程序发明者休息在平板电脑上运行时返回错误
- macos - 如何将终端样式更改回默认值?
- javascript - 在javascript中计数和重置
- javascript - 使用纯javascript将鼠标悬停在视频上时如何播放视频
- ruby - 向 Middleman 添加自定义 Markdown
- c# - 用一个词多次拆分字符串?
- html - 在换行符中处理边距时,是否有更简单的“calc”替代方法?
- video-streaming - HLS 视频流和聊天消息同步