2014-09-23 111 views
0

我有一个Maven项目说项目A,并且还有一类说ClassA的这个项目,该项目使用从资源文件夹中的文件,我使用以下方式从资源阅读:Maven的模块依赖和资源

String fileName = IPToGeoMapper.class.getResource("/resourceFile.txt").getFile(); 
File resourceFile = new File(fileName); 

,它的作品像魅力。

现在,当我从这个项目中创建工件时(我已经尝试提取创建的jar,并且它已将jar包中的resourceFile.txt打包),并将其用作其他项目的依赖项,比如ProjectB,ClassA没有更多发现resourceFile.txt,因为它尝试浏览ProjectB的资源文件夹。

我想要最好的全局解决方案,可以在所有项目中使用ProjectA创建的工件 处理此问题的最佳方法是什么?

+1

尝试使用ResourceAsStream – Samy 2014-09-23 11:18:11

回答

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

+0

类路径加载它,是的,我认为这会工作的属性文件作为其返回的流,我需要处理的文件实际。 – 2014-09-23 11:56:36

+0

您仍然可以从流中读取文件内容。如果您必须阅读文件内容,请阅读流中的文件内容来编辑我的答案。 – Samy 2014-09-23 12:11:14