Resources源码
2017-03-07 本文已影响0人
ywy_java
成员变量:classLoaderWrapper、charset
![](https://img.haomeiwen.com/i4313944/4a8327e15a709eeb.png)
其中classLoaderWrapper的来源见http://t.cn/RipR41D
只有一个无参数的构造函数
成员方法:
![](https://img.haomeiwen.com/i4313944/ecc368adbf4eeb61.png)
先看这两个方法
![](https://img.haomeiwen.com/i4313944/35c3d8a0ae0dd007.png)
这个方法就解释了为什么在ClassLoaderWrapper方法中没有对成员变量defaultClassLoader操作的方法。
接下来的几个getResource*方法都是类似就就看一对
![](https://img.haomeiwen.com/i4313944/cc4c8b00add1a3ee.png)
就是对成员变量classLoaderWrapper的getResource*方法调用以及封装。
这些方法都是本地资源的获取,后面几个方法就是对网络资源的获取。
![](https://img.haomeiwen.com/i4313944/3c4f2f1eba06e35e.png)
这个方法就是获取url路径的资源,得到对应的输入流。
它还有个对应转换成字符流的方法getUrlAsReader(String urlString)在看这个之前我们要先看下面的这个方法。
![](https://img.haomeiwen.com/i4313944/ebea3f842562e477.png)
这个方法就是对成员变量赋值,他的用途在哪?
![](https://img.haomeiwen.com/i4313944/9b2ff7cb0f7cfeb9.png)
我们看这个方法,主要就是在将字符流转换成字节流的时候,可以指定编码。
还剩下两个方法,classForName就看图,它和getResource方法一样就是对成员变量classLoaderWrapper方法的调用。
![](https://img.haomeiwen.com/i4313944/95738b558e32f1d5.png)
最后一个方法
![](https://img.haomeiwen.com/i4313944/8bf2d060d67bf65a.png)
也是调用了前面的getUrlAsStream,不过这个方法将资源转换成了Properties对象。也就是说对于网络上的资源,如果是键值对的就调用这个方法。