我有一个maven项目说ProjectA,并且在这个项目中有一个类说ClassA,它使用资源文件夹中的文件,我使用以下方式从资源中读取:
String fileName = IPToGeoMapper.class.getResource("/resourceFile.txt").getFile();
File resourceFile = new File(fileName);
它就像魅力一样。
现在,当我从这个项目中创建工件时(我已经尝试提取创建的jar并且它在jar中包含了resourceFile.txt),并将其用作其他项目中的依赖项,例如ProjectB,ClassA不再找到resourceFile.txt尝试浏览ProjectB的资源文件夹。
我想要最好的全局解决方案,它可以在我导入从ProjectA创建的工件的所有项目中工作 处理这个问题的最佳方法是什么?
答案 0 :(得分:1)
尝试这种方式,我是以读取属性文件为例。
Properties propfile = new Properties();
propfile.load(PropertyUtils.class.getClassLoader()
.getResourceAsStream(
"applicationprops.properties"));
BufferedReader reader = new BufferedReader(new InputStreamReader(ClassA.class.getClassLoader().getResourceAsStream("file.txt")));
StringBuilder out = new StringBuilder();
String line;
while ((line = reader.readLine()) != null) {
out.append(line);
}
System.out.println(out.toString()); //Prints the string content read from input stream
reader.close();