博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Class和ClassLoader的getResourceAsStream区别
阅读量:7071 次
发布时间:2019-06-28

本文共 628 字,大约阅读时间需要 2 分钟。

这两个方法还是略有区别的, 以前一直不加以区分,直到今天发现要写这样的代码的时候运行

错误, 才把这个问题澄清了一下。
基本上,两个都可以用于从 classpath 里面进行资源读取,  classpath包含classpath中的路径
和classpath中的jar。
两个方法的区别是资源的定义不同, 一个主要用于相对与一个object取资源,而另一个用于取相对于classpath的
资源,用的是绝对路径。
在使用Class.getResourceAsStream 时, 资源路径有两种方式, 一种以 / 开头,则这样的路径是指定绝对
路径, 如果不以 / 开头, 则路径是相对与这个class所在的包的。
在使用ClassLoader.getResourceAsStream时, 路径直接使用相对于classpath的绝对路径。
举例,下面的三个语句,实际结果是一样的:
   com.explorers.Test.class.getResourceAsStream("abc.jpg")
= com.explorers.Test.class.getResourceAsStream("/com/explorers/abc.jpg")
= ClassLoader.getResourceAsStream("com/explorers/abc.jpg")

转载于:https://www.cnblogs.com/xuxiuxiu/p/5283968.html

你可能感兴趣的文章
能源项目xml文件 -- app-datasource.xml
查看>>
使用Nginx负载均衡搭建高性能.NETweb应用程序(转)
查看>>
Bootstrap框架下实现图片切换
查看>>
poj1860--Currency Exchange
查看>>
浅谈js中的继承
查看>>
移动端web app开发备忘
查看>>
Lintcode---线段树查询(区间最大值)
查看>>
C++加载位图跟SOCKET通信的编写
查看>>
ZOJ 1649 Rescue(有敌人迷宫BFS)
查看>>
XV Open Cup named after E.V. Pankratiev. GP of Three Capitals
查看>>
ORA-01012: not logged on
查看>>
[svc]logstash和filebeat之间ssl加密
查看>>
初识btrace
查看>>
Mybatis-plus之RowBounds实现分页查询
查看>>
AjaxPro.Net的使用
查看>>
分享一些经典资源
查看>>
HDU-1723 Distribute Message
查看>>
6200 sdboot 测试版分析(一)
查看>>
WayOs扩展WAN口工具1.4隆重发布,同时发布BCM内置三天智能重启超级终端调试图...
查看>>
Java反编译插件Jdclipse导致Eclipse 3.7.2启动崩溃的解决方法
查看>>