java 使用相对路径读取文件【转】

本文详细介绍了在Java环境中如何使用相对路径读取文件,包括使用Java.io进行基本操作和在JavaEE环境下利用Classloader读取XML文件的方法。特别强调了路径的正确格式和不同文件存放位置的读取策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

java 使用相对路径读取文件

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

*目录结构:

decisiontree

|___src

|___com.decisiontree.samplesreader.java

|___resource

|___train.txt,test.txt

*samplesreader.java:

string filepath="resource/train.txt";//注意filepath的内容;

file file=new file(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!

2、javaee环境,使用classloader用相对路径读取xml的例子:

*参见之前写的文章“通过虚拟路径或相对路径读取一个xml文件,避免硬编码”。

*内容如下:

java使用相对路径读取xml文件:

一、xml文件一般的存放位置有三个:

1.放在web-inf下;

2.xml文件放在/web-inf/classes目录下或classpath的jar包中;

3.放在与解析它的java类同一个包中,不一定是classpath;

二、相对应的两种使用相对路径的读取方法:

方法一:(未验证)

将xml文件放在web-inf目录下,然后

程序代码:

inputstream is=getservletcontext().getresourceasstream( "/web-inf/xmlfile.xml" );

方法二:将xml文件放在/web-inf/classes目录下或classpath的jar包中,则可以使用classloader的静态

方法getsystemresourceasstream(string s)读取;

程序代码:

string s_xmlpath="com/spf/web/ext/hotspot/hotspotxml/hotspot.xml";

inputstream in=classloader.getsystemresourceasstream(s_xmlpath);

方法三:xml在随意某个包路径下:

string s_xmlpath="com/spf/web/ext/hotspot/hotspotxml/hotspot.xml";

classloader classloader=hotspotxmlparser.class.getclassloader();

inputstream in=classloader.getresourceasstream(s_xmlpath);


======================================================
在最后,我邀请大家参加新浪APP,就是新浪免费送大家的一个空间,支持PHP+MySql,免费二级域名,免费域名绑定 这个是我邀请的地址,您通过这个链接注册即为我的好友,并获赠云豆500个,价值5元哦!短网址是http://t.cn/SXOiLh我创建的小站每天访客已经达到2000+了,每天挂广告赚50+元哦,呵呵,饭钱不愁了,\(^o^)/
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值