您的位置:首页 > 编程语言 > Java开发

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

2012-01-10 04:33 417 查看
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^)/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: