`

java 使用相对路径读取文件

阅读更多
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);
分享到:
评论

相关推荐

    关于java 读取eclipse下文件相对路径 关于Java的文件相对路径问题一直 ....doc

    关于java 读取eclipse下文件相对路径 关于Java的文件相对路径问题一直 ...

    文件写入,项目相对路径,java反射,模板数据写入

    格式化文件操作,将数据按照模板写入新文件,正则表达式替换模板指定内容,文件读写,stateprocess.java 项目运行文件

    Java 中几种获取文件路径的方式

    文件的路径通常有 相对路径 与 绝对路径。 2.1 相对路径 以当前文件为基准进行一级级目录指向被引用的资源文件。在 Java 代码中以当前运行的代码所在的位置为参照位置,只要被引用的文件相对于引用的文件的位置不变...

    浅谈java 中文件的读取File、以及相对路径的问题

    今天小编就为大家分享一篇浅谈java 中文件的读取File、以及相对路径的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

    springboot如何获取相对路径文件夹下静态资源的方法

    主要介绍了springboot如何获取相对路径文件夹下静态资源的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    java压缩文件源码--ZipUtils

    // entry以相对路径的形式设置。以文件夹C:\temp例如temp\test.doc或者test.xls 如果设置不当,会出现拒绝访问等错误 // 分别处理单个文件/目录的entry if(rootStr.equals(tempFile.getPath())){ ...

    一个常用的Java文件操作类FileUtil.java源码下载

    包括其子目录中、将目录中的内容添加到列表、返回文件的URL地址、从文件路径得到文件名、将DOS/Windows格式的路径转换为UNIX/Linux格式的路径、...得到相对路径、检查给定目录的存在性、读取文件的内容、获取图片文件

    Java 获取Web项目相对webapp地址的实例

    下面小编就为大家带来一篇Java 获取Web项目相对webapp地址的实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    java实现js、css、图片合并到html文件

    技术点:1、使用htmlparser解析html文件,得到html代码里的js、css、img链接 2、将相对路径的链接转变成绝对路径,并读取资源 3、将css和js合并到html 4、将图片转换成base64编码,写入标签的src

    基于适配spring boot工程开发,在以spring boot框架为基础的项目工程中的pom.xml文件引入的工具包

    hm-tools-js-css 功能:根据URL请求参数将多个javascript文件合并成一个javascript文件返回...支持替换css文件中url引用资源的相对路径为可访问的绝对路径。支持使用yuicompressor对js,css文件内容进行实时压缩、混淆

    java 面试题 总结

    forward是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把这些内容再发给浏览器,浏览器根本不知道服务器发送的内容是从哪儿来的,所以它的地址栏中还是原来的地址。 redirect...

    一个开源的Java基础工具包

    可以调用MailAccount(String accountSettingFileBaseClassLoader)读取相对路径的Setting文件,配置参考mailAccount-example.setting 2、com.baijob.commonTools.mail.MailUtil邮件发送工具类,方法请参考注释 此...

    一个java正则表达式工具类源代码.zip(内含Regexp.java文件)

    以前写了一个java的正规表达式的java工具类,分享一下,有用到的欢迎下载使用。 如果你有常用的定义好的,且测试通过的正规表达式,欢迎跟贴,也让我享用一下 . 类中用到了 jakarta-oro-2.0.jar 包,请大家自己在 ...

    基于javadbf-0[1].4.0.jar包的dbf文件操作源码

    一般的dbf文件都是数据库操作文件,用c语言进行操作的dll很多,但是java操作的很少,我找到了一个javadbf-0[1].4.0.jar的包,但是操作效果很不理想,尤其是末尾空格和乱码问题,于是我在这个jar包的基础上进行进一步...

    php自动提取apk包的信息

    可以用相对路径,如果在根目录,则要用.开始,表示当前目录。 该DEMO文件只对《php上传apk后自动提取apk包的信息》。具体项目运用,请根据自己项目需求改动。如有疑问,欢迎与我交流。 将该文件放至php运行目录下...

    maven相关资料

    // 使用了classpath:前缀,这样,FileSystemXmlApplicationContext也能够读取classpath下的相对路径 // ApplicationContext factory = new FileSystemXmlApplicationContext("classpath:appcontext.xml"); // ...

    php自动提取apk包的信息程序演示

    可以用相对路径,如果在根目录,则要用.开始,表示当前目录。 该DEMO文件只对《php上传apk后自动提取apk包的信息》参见:http://blog.csdn.net/zm2714/article/details/7938749,中的代码做稍微更改。具体项目运用...

    通过java操作excel表格的工具类库jxl

     必须使用Number的完整包路径,否则有语法歧义  单元格位置是第二列,第一行,值为789.123*/  jxl.write.Number number = new jxl.write.Number(1,0,789.123);  sheet.addCell(number);  //写入数据并关闭文件 ...

    超级有影响力霸气的Java面试题大全文档

     forward是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把这些内容再发给浏览器,浏览器根本不知道服务器发送的内容是从哪儿来的,所以它的地址栏中还是原来的地址。...

    jamspell-java:用于现代拼写检查库JamSpell的Java绑定

    JamSpell Java绑定一个... 该文件应包含要加载的库的资源路径(相对或绝对),该资源路径将被复制到磁盘并加载。 要添加对库不提供内置支持的新平台的支持,请为目标平台编译位于cpp的CMake项目,将其放置在资源类路径

Global site tag (gtag.js) - Google Analytics