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

java 使用相对路径读取文件

2014-07-12 22:14 471 查看


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

(1)目录结构:

DecisionTree

|___src

|___com.decisiontree.SamplesReader.java

|___resource

|___train.txt,test.txt

(2)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的例子:

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

(1)xml文件一般的存放位置有三个:

1.放在WEB-INF下;

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

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

(2)相对应的两种使用相对路径的读取方法:

方法一:

将xml文件放在WEB-INF目录下,程序代码:InputStream is=getServletContext().getResourceAsStream( ”/WEB-INF/xmlfile.xml” );

方法二:

将xml文件放在/WEB-INF/classes目录下或classpath的jar包中,则可以使用ClassLoader的静态方法getSystemResourceAsStream(String s)读取,程序代码:

String xmlpath=”com/spf/web/ext/hotspot/hotspotxml/hotspot.xml”;

InputStream in=ClassLoader.getSystemResourceAsStream(xmlpath);

方法三:
xml在随意某个包路径下,如下所示:

String xmlpath=”com/spf/web/ext/hotspot/hotspotxml/hotspot.xml”;

ClassLoader classLoader=HotspotXmlParser.class.getClassLoader();

InputStream in=classLoader.getResourceAsStream(xmlpath);

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

转载自:http://www.strutshome.com/index.php/archives/421
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: