Resources的资源的读取

Java中取资源时,经常用到Class.getResource和ClassLoader.getResource读取resources文件夹下的文件
1 示例
通常工程结构如下:


工程结构
package wusj.ResourceFileTest;

public class App
{
    public static void main( String[] args )
    {
     /*********方法1 通过ClassLoader.getResource()读取********/
          ClassLoader classLoader = App.class.getClassLoader();
          //得到的路径是classpath
          System.out.println(classLoader.getResource("").toString());
          //读取abc.txt
          System.out.println(classLoader.getResource("abc.txt").toString());
          System.out.println();

     /********方法2 通过class.getResource()读取*********/
          //得到的路径是classpath
          System.out.println(App.class.getResource("/").toString());
          //得到当前类所在文件夹
          System.out.println(App.class.getResource("").toString());
          //读取classpath下的abc.txt,必须加/,否则会定位到当前类所在文件夹
          System.out.println(App.class.getResource("/abc.txt").toString());
          //读取当前类所在文件夹下的resources/def.txt
          System.out.println(App.class.getResource("resources/def.txt").toString());
    }
}
运行结果

2 两者的区别

  • Class.getResource(String path)

path 不以’/'开头时,默认是从此类所在的包下取资源;
path 以’/'开头时,则是从classpath根下获取;

  • Class.getClassLoader().getResource(String path)

path不能以’/'开头时;
path是从classpath根下获取;

如果想获取classpath(在这里是指file:/E:/wusj/workspace-per/ResourceFileTest/target/classes/)下的资源,可以使用Class.getResource(String path)或者Class.getClassLoader().getResource(String path);如果是获取位于某个包下的资源,则使用Class.getResource(String path)。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,155评论 19 139
  • ClassLoader翻译过来就是类加载器,普通的java开发者其实用到的不多,但对于某些框架开发者来说却非常常见...
    时待吾阅读 4,771评论 0 1
  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 47,153评论 6 342
  • 应该是一年前读过《小狗钱钱》,如今快速复看了一遍,感触依然颇深,这本书虽然是属于少儿财商启蒙读物,但对于从小缺乏财...
    苏小嘿阅读 3,486评论 0 0
  • 浮点高斯消元: 模意义下高斯消元 整数行列式求值: 异或消元:
    fo0Old阅读 4,617评论 1 3

友情链接更多精彩内容