欢迎来到天天文库
浏览记录
ID:48315118
大小:16.52 KB
页数:3页
时间:2020-01-13
《java new file 使用相对路径读取文件》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、1.javaproject环境,使用java.io用相对路径读取文件的例子: *目录结构: DecisionTree
2、___src
3、___com.decisiontree.SamplesReader.java
4、___resource
5、___train.txt,test.txt *SamplesReader.java: Stringfilepath="resource/train.txt";//注意filepath的内容; Filefile=newFile(filepath); ……
6、 *我们留意filepath的内容,java.io默认定位到当前用户目录("user.dir")下,即:工程根目录"D:DecisionTree"下,因此,此时的相对路径(以user.dir为基路径的路径)为"resource/train.txt"。这样,JVM就可以根据"user.dir"与"resource/train.txt"得到完整的路径(即绝对路径)"D:DecisionTreeresourcetrain.txt",从来找到train.txt文件。 *注意:相对路径的起始处无斜杆"/";例如:filepath="resource/train.txt";而不是filepath="
7、/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目录下,然后程序代码:
8、InputStreamis=getServletContext().getResourceAsStream("/WEB-INF/xmlfile.xml");方法二:将xml文件放在/WEB-INF/classes目录下或classpath的jar包中,则可以使用ClassLoader的静态方法getSystemResourceAsStream(Strings)读取;程序代码:Strings_xmlpath="com/spf/web/ext/hotspot/hotspotxml/hotspot.xml";InputStreamin=ClassLoader.getSystemResource
9、AsStream(s_xmlpath);方法三:xml在随意某个包路径下:Strings_xmlpath="com/spf/web/ext/hotspot/hotspotxml/hotspot.xml";ClassLoaderclassLoader=HotspotXmlParser.class.getClassLoader();InputStreamin=classLoader.getResourceAsStream(s_xmlpath);FileTest.class.getResource在所有项目上都好用:1,FileTest.class.getResource("")得到的是当前类
10、FileTest.class文件的URI目录。不包括自己!如:file:/D:/java/eclipse32/workspace/jbpmtest3/bin/com/test/2,FileTest.class.getResource("/")得到的是当前的classpath的绝对URI路径。如:file:/D:/java/eclipse32/workspace/jbpmtest3/bin/3,Thread.currentThread().getContextClassLoader().getResource("")得到的也是当前ClassPath的绝对URI路径。如:file:/D:/j
11、ava/eclipse32/workspace/jbpmtest3/bin/4,FileTest.class.getClassLoader().getResource("")得到的也是当前ClassPath的绝对URI路径。如:file:/D:/java/eclipse32/workspace/jbpmtest3/bin/5,ClassLoader.getSystemResource("")得到的也是当前ClassPath的绝对UR
此文档下载收益归作者所有