CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Java >  Web 开发

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

楼主dddeee(dddeee)2006-02-17 12:51:39 在 Java / 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

相关问题

  • 关于WEB应用程序虚拟相对路径的麻烦事:
  • 请教FileStream读取相对路径的问题?谢谢了^_^
  • jsp可以用相对路径读取同目录中的文件吗?
  • tomcat相对路径
  • 【求助】ActiveX读取Access数据库时,如果取得服务器端的相对路径???
  • 【求助】ActiveX读取Access数据库时,如果取得服务器端的相对路径???
  • tomcat修改web应用程序路径问题
  • 如何获得当前web应用的绝对路径?
  • web应用下的文件读取问题(高手请进)
  • 相对路径与绝对路径

关键词

  • 文件
  • jsp
  • 路径
  • 读取
  • getclass
  • getresource
  • txt
  • getpath
  • 类
  • reader

得分解答快速导航

  • 帖主:dddeee
  • infowain
  • wangx1949
  • vvpang
  • polarman
  • figoren

相关链接

  • CSDN Java频道
  • Java类图书
  • Java类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo