部署后的java程序 读取配置文件的问题

很多时候程序需要读取工程中的一些文件(如xml、properties等等),而文件的路径指定往往会困扰我们的开发工作,尤其在web程序的开发中路径问题尤为突出,下面就简单介绍一下java中相对路径的获得方法。

1. getRealPath():仅限使用在servlet中,可以动态获得文件的绝对路径,部署在服务器上的工程通常要查看部署后服务器中的路径。

this.getServletContext().getRealPath("WEB-INF/classes/com.demo/config.xml")  


 2. getResource/getResourceAsStream:

1.String path =”/xml/config.xml”;   
2.String fullPath=this.getClass().getClassLoader().getResource(path).getPath();   


或是:

Class.class.getResource("/file/config.xml").getPath()  


在使用Class.getResource/Class.getResourceAsStream 时, 资源路径有两种方式, 一种以 / 开头,则这样的路径是指定绝对路径, 如果不以 / 开头, 则路径是相对与这个class所在的包的。

在使用ClassLoader.getResource/ClassLoader.getResourceAsStream时,  路径直接使用相对于classpath的绝对路径。

 

当路径中含有空格时,这种方式,有时会出问题,要把%20重新转为空格,进行替换处理,才能获得正确的路径。

String path =”/xml/config.xml”;  
String fullPath=this.getClass().getClassLoader().getResource(path).getPath();
=====================================================================

YourClass.class.getClassLoader().getResourceAsStream("your.configuration.file");
通过ClassLoader获得Resource得到URL,直接用URL的openStream方法就可以打开了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值