我正在编写一个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异常。
欢迎任何建议。
答案 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
可能对您有用。