急求!在WEB应用中的普通类读取相对路径下的文件,搞不定!

dddeee 2006-02-17 12:51:39
大家好,小弟遇到了一个麻烦的问题,搞了一天没搞定,问问大家:

我有一个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就可以读取那国际化资源的文件



...全文
223 点赞 收藏 7
写回复
7 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
rgwfeng2 2006-05-08
mark
回复
infowain 2006-02-17
String lsFile = this.getClass().getResource("/").getPath()+System.getProperty("file.separator") + "data.txt"
回复
infowain 2006-02-17
String lsFile = this.getClass().getResource("/").getPath() + System.getProperty("file.separator") + "data.txt"
回复
figoren 2006-02-17
直接读InputStream is = is.getClass().getResourceAsStream("test/data.txt");
回复
polarman 2006-02-17
假设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");
回复
vvpang 2006-02-17
楼上的那个就可以得到webapps的绝对路径。。

回复
wangx1949 2006-02-17
同意楼上
String lsFile = this.getClass().getResource("/").getPath()+System.getProperty("file.separator") + "data.txt"
这样如果不行,把data.txt放到JSP的工作目录试试.
回复
相关推荐
发帖
Web 开发
创建于2007-09-28

8.0w+

社区成员

Java Web 开发
申请成为版主
帖子事件
创建了帖子
2006-02-17 12:51
社区公告
暂无公告