如何从Web应用程序中读取文本文件

时间:2012-06-11 10:26:51

标签: java file war

我正在编写一个Jersey Restful服务,通过war文件部署在Tomcat上。

该服务需要读取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异常。

欢迎任何建议。

2 个答案:

答案 0 :(得分:5)

我将我的文本文件复制到WEB-INF/classes文件夹中并使用this.getClass().getClassLoader().getResourceAsStream("/myfile.txt")并且它有效。

谢谢大家。

答案 1 :(得分:1)

Java - Relative path of a file in a java web application中有一个类似的主题。

如果您想实时了解目录,可以访问类ServletContext方法。我相信方法getContextPath可能对您有用。