假设我有一个包:com.example.resources
并且在其中我有picture.jpg
和text.txt
- 我如何只使用包路径来标识{{1}的绝对文件路径}和picture.jpg
?
这是对的吗?
text.txt
答案 0 :(得分:1)
"我试图在应用程序中引用这些文件,这样当我将应用程序部署到不同的系统时,我不必重新配置每个资源的位置"
您不想使用File
,它将从本地计算机的文件系统加载,您希望通过类路径加载,因为{{3} 应该被阅读。使用embedded resources作为文本文件,getClass().getResourceAsStream(..)
作为图片
根据您提供的套餐名称,您引用的当前路径似乎 工作。
答案 1 :(得分:-1)
我已经想出了怎么做。这是我使用的代码:
public String packagePathToAbsolutePath(String packageName, String filename) {
String absolutePath = "File not found";
URL root = Thread.currentThread().getContextClassLoader().getResource(packageName.replace(".", "/"));
File[] files = new File(root.getFile()).listFiles();
for (File file : files) {
if (file.getName().equals(filename)) {
absolutePath = file.getName();
return absolutePath;
}
}
return absolutePath;
}
这个方法非常有用,因为它允许我在应用程序中配置资源路径,这样当我在不同系统上运行应用程序时,我不必重新配置任何路径。