急求!在WEB应用中的普通类读取相对路径下的文件,搞不定!
大家好,小弟遇到了一个麻烦的问题,搞了一天没搞定,问问大家:
我有一个jsp应用,里面有一个类,初始化时需要读取另一个文本文件中的数据。所谓普通类,就是指它一个是与servlet无关的类,不在web环境中也可以使用。
在本机上,使用的绝对路径:File file = new File("C:\\data.txt"),可以读到数据文件。但放到另一台服务器中的tomcat中,由jsp调用这个类时,它再读取c:\data.txt文件肯定会失败,所以我想用相对路径的方法解决。
但是没有搞定,总是找不到路径。
我的做法是:
1.使用以下的目录结构
test
|- Reader.java
|- data.txt
但在Reader.java中使用 File file = new File("data.txt");但是找不到这个data.txt,怎么办?
2.或者将data.txt放在WEB-INF\classes下,但是怎么做才能在Reader.java中找到这个data.txt呢?我记得在struts就可以读取那国际化资源的文件
问题点数:100、回复次数:7Top
1 楼infowain(infowain)回复于 2006-02-17 12:57:40 得分 20
String lsFile = this.getClass().getResource("/").getPath() + System.getProperty("file.separator") + "data.txt"Top
2 楼infowain(infowain)回复于 2006-02-17 12:58:10 得分 0
String lsFile = this.getClass().getResource("/").getPath()+System.getProperty("file.separator") + "data.txt"Top
3 楼wangx1949()回复于 2006-02-17 13:23:44 得分 20
同意楼上
String lsFile = this.getClass().getResource("/").getPath()+System.getProperty("file.separator") + "data.txt"
这样如果不行,把data.txt放到JSP的工作目录试试.Top
4 楼vvpang(NullPointerException)回复于 2006-02-17 13:45:21 得分 20
楼上的那个就可以得到webapps的绝对路径。。
Top
5 楼polarman(北极人http://blog.csdn.net/polarman)回复于 2006-02-17 13:57:53 得分 20
假设reader的包是test
把data.txt放到Reader.class相同的目录
在Reader对象中
URL url = this.getClass().getClassLoader().getResource("test/data.txt");
或URL url = this.getClass().getResource("data.txt");
String path = url.getPath();
或直接取文件流:
InputStream is = this.getClass().getClassLoader().getResourceAsStream("test/data.txt");
或InputStream is = is.getClass().getResourceAsStream("test/data.txt");Top
6 楼figoren(figoren)回复于 2006-02-17 14:56:22 得分 20
直接读InputStream is = is.getClass().getResourceAsStream("test/data.txt");
Top
7 楼rgwfeng2(编程刚入门)回复于 2006-05-08 16:51:53 得分 0
markTop




