Java resource 读取解释,绝对路径和相对路径

匿名 (未验证) 提交于 2019-12-02 21:52:03

java如何加载资源?

Java 从环境中读取资源,在多数情况下,java直接在Classpath下检索jar. 因为加载资源和代码运行位置无关,java中的资源加载被称为location independent,java仅需要正确的环境即可找到资源.

绝对路径和相对路径

资源的引用都是使用资源名: getResourceAsStream("/path/resource.xml");

其中"/path/resource.xml"就是资源名;

资源名可以:

  • 绝对路径,例如"/path/resource.xml"; 以''/''开头即为绝对路径

  • 相对路径,例如"path/resource.xml";

相对路径是指,相对于方法被调用的位置,路径会拼接,而绝对路径则会将/移除后直接使用

 
  • stream1获取资源的路径为path/resource.xml

  • stream2获取资源路径为my/location/path/resource.xml

ClassLoader 和Class对文件名的不同处理

ClassLoader.getResource()Class.getResource() 工作方式不同

ClassLoader 直接使用给定string作为资源名而不使用绝对路径/相对路径的转换,因此string不能以/开头

 

stream3的文件路径为 path/resource.xml,而stream4的路径是非法的

参考文献:

http://www.thinkplexx.com/learn/howto/java/system/java-resource-loading-explained-absolute-and-relative-names-difference-between-classloader-and-class-resource-loading

    

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!