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

来源:互联网 发布:夺宝阁人工计划软件 编辑:程序博客网 时间:2024/06/10 06:45

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^)/
原创粉丝点击