2012-06-11 108 views
4

我正在編寫Jersey Restful服務以通過戰爭文件部署在Tomcat上。如何從Web應用程序讀取文本文件

該服務需要讀取3個文本文件中的數據。文本文件需要存在於文件系統中或從類路徑中讀取。我試圖從文件系統和類路徑中讀取數據,但都沒有工作。我會對任何一種方式感到高興 - 這並不重要。

如果是使用下面的代碼,有人可以告訴我在哪裏放置指定的文本文件,以便代碼獲取文件?

BufferedReader br = new BufferedReader(new InputStreamReader 
(this.getClass().getClassLoader().getResourceAsStream("myfile.txt"))); 

我得到一個空指針異常。

如果我要從文件系統中讀取文件,請使用以下代碼,我將文件放在我的Jar中的位置?

FileInputStream fs = new FileInputStream("myFile.txt"); 
DataInputStream is = new DataInputStream(fs); 
BufferedReader br = new BufferedReader(new InputStreamReader(is)); 

我得到一個FileNotFound異常。

歡迎任何建議。

回答

1

還有一個類似的線程在Java - Relative path of a file in a java web application

如果您想實時瞭解目錄,可以訪問類ServletContext的方法。我相信方法getContextPath可能對你有用。

+0

我試過了。我一直在使用路徑的各種組合,並將文件放在不同的位置,但我的應用程序找不到該文件。你能給我一個路徑字符串和位置的例子嗎? – TheCoder

4

我將我的文本文件複製到WEB-INF/classes文件夾中,並使用this.getClass().getClassLoader().getResourceAsStream("/myfile.txt"),它工作。

謝謝大家。

+0

thx,這對我有幫助 – Janiiik

相關問題