`

Java类中的文件路径

    博客分类:
  • Java
阅读更多

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

  1. getRealPath():仅限使用在servlet中,可以动态获得文件的绝对路径,部署在服务器上的工程通常要查看部署后服务器中的路径。
    this.getServletContext().getRealPath("WEB-INF/classes/com.demo/config.xml")
     
  2. getResource/getResourceAsStream:
    String path =”/xml/config.xml”; 
    String fullPath=this.getClass().getClassLoader().getResource(path).getPath(); 
     或是
    Class.class.getResource("/file/config.xml").getPath()

    采纳了 seaizon 的建议:

seaizon 写道

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

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

 

 

 

分享到:
评论
2 楼 pute 2010-05-07  
当路径中含有空格时,这种方式,有时会出问题,要把%20重新转为空格,进行替换处理,才能获得正确的路径。

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

1 楼 seaizon 2010-05-07  
String path =”/xml/config.xml”; 
String fullPath=this.getClass().getClassLoader().getResource(path).getPath(); 


应该这样写吧:
String path =”xml/config.xml”; 
String fullPath=this.getClass().getClassLoader().getResource(path).getPath(); 


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

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

相关推荐

Global site tag (gtag.js) - Google Analytics