我在Java Web应用程序中具有以下结构:
TheProject -- [Web Pages] -- -- [WEB-INF] -- -- -- abc.txt -- -- index.jsp -- [Source Packages] -- -- [wservices] -- -- -- WS.java
在中WS.java,我在Web方法中使用以下代码:
InputStream fstream = this.getClass().getResourceAsStream("abc.txt");
但是它总是返回null。我需要读取该文件,并且我读到如果将文件放入其中WEB-INF,则可以使用进行访问getResourceAsStream,但是该方法始终返回null。
WEB-INF
getResourceAsStream
对我可能做错的任何想法?
它正在工作,但是当我Clean and Build在Project上执行了a之后,它突然停止工作了
据我所知,该文件必须正确地放置在'this'该类所在的文件夹中,即不在该文件中,WEB-INF/classes而是嵌套得更深(除非你使用默认程序包编写):
'this'
WEB-INF/classes
net/domain/pkg1/MyClass.java net/domain/pkg1/abc.txt
将文件放入Java源应该可以正常工作,编译器会将该文件与类文件一起复制。
代替
采用
InputStream fstream = this.getClass().getClassLoader().getResourceAsStream("abc.txt");
这样,它将从根目录而不是当前调用类的路径进行查看