2012-06-11 72 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

相关问题