0

我有一个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 创建的工件的所有项目中工作 处理这个问题的最佳方法是什么?

4

1 回答 1

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();

于 2014-09-23T11:20:51.423 回答