2014-03-14 103 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