java 使用相对路径读取文件

1.JavaSE环境,使用java.io用相对路径读取文件的例子:

(1)目录结构:
DecisionTree
|___src
|___com.decisiontree.SamplesReader.java
|___resource
|___train.txt,test.txt
(2)SamplesReader.java:
Stringfilepath=”resource/train.txt”;//注意filepath的内容;
Filefile=newFile(filepath);
……
我们要留意filepath的内容,java.io默认定位到当前用户目录(“user.dir”)下,即:工程根目“D:\DecisionTree”下,因此,此时的相对路径(user.dir为基路径的路径)“resource/train.txt”。这样,JVM就可以根据“user.dir”“resource/train.txt”得到完整的路径(即绝对路径)“D:\DecisionTree\resource\train.txt”,从来找到train.txt文件。
注意:相对路径的起始处无斜杆“/”,例如:
filepath=”resource/train.txt”;
而不是filepath=”/resource/train.txt”;//error!

2JavaEE环境,使用Classloader用相对路径读取xml的例子:

Java使用相对路径读取xml文件:
(1)xml文件一般的存放位置有三个:
1.放在WEB-INF下;
2.xml文件放在/WEB-INF/classes目录下或classpathjar包中;
3.放在与解析它的java类同一个包中,不一定是classpath

(2)相对应的两种使用相对路径的读取方法:
方法一:
xml文件放在WEB-INF目录下,程序代码:InputStreamis=getServletContext().getResourceAsStream(”/WEB-INF/xmlfile.xml”);
方法二:
xml文件放在/WEB-INF/classes目录下或classpathjar包中,则可以使用ClassLoader的静态方法getSystemResourceAsStream(Strings)读取,程序代码:
String xmlpath=”com/spf/web/ext/hotspot/hotspotxml/hotspot.xml”;
InputStreamin=ClassLoader.getSystemResourceAsStream(xmlpath);
方法三:
xml在随意某个包路径下,如下所示:
String xmlpath=”com/spf/web/ext/hotspot/hotspotxml/hotspot.xml”;
ClassLoaderclassLoader=HotspotXmlParser.class.getClassLoader();
InputStreamin=classLoader.getResourceAsStream(xmlpath);

其中:HotspotXmlParser是与xml文件出于同一个包的类。


转载自:http://www.strutshome.com/index.php/archives/421

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值