2014-03-14 105 views
0

我是Maven的新手,并且在阅读文件时遇到了一些麻烦。具体来说,我的程序将文件的绝对路径作为用户的输入,然后对其进行解析。不幸的是,我不清楚如何让我的应用程序从任意位置读取文件作为输入。maven从用户读取文件输入

之前,我开始使用该项目的行家,我成功地使用这个代码:

String absolutePath = "/Users/akhalsa/path/to/file.txt"; 
inputStream = new BufferedReader(new FileReader(absolutePath)); 

然而,由于迁移到Maven,这似乎已停止工作。从我在行家看了我应该使用

InputStream in = getClass().getResourceAsStream(filePath); 

filePath似乎是有问题的文件的相对路径。 getResourceAsStream是否要求被读取的文件在jar中?该文件可以是外部文件的绝对路径吗?当我在这里使用绝对路径时,它会显示“找不到资源”。

这对于让用户从文件系统输入文件来处理maven应用程序而言,这一定是一个常见问题。最好的办法是什么?

在此先感谢。

回答

0

getResourceAsStream()在jvm已知的路径上查找资源,因此无法加载任意文件。

Maven没有魔法,所以如果你使用实际的绝对路径,代码应该继续工作。

路径的“用户”部分让我想起了窗口,但路径不是有效的Windows路径,所以你确定你正在传递一个有效的绝对路径?

+0

是的,事实证明,我的绝对路径错了。一旦我纠正它,它工作得很好。正如你所说,似乎Maven在加载文件时不会做任何诡计 – akhalsa