getResourceAsStream
和Class
中的方法ClassLoader
会返回InputStream
。这个InputStream
是否实际上在调用getResourceAsStream
时加载了所有内容,还是只是指向某个系统在请求部分内容时加载资源?
答案 0 :(得分:0)
getResourceAsStream
何时实际加载资源?
该方法只是打开一个用于读取资源的流。它没有"加载"它"
流的实际行为将是实现(例如类加载器)特定的,但通用ClassLoader
API文档中没有任何内容建议 1 类加载器应该< / em>将资源预先读入内存。
如果想要类加载器来执行此操作,则可以编写自定义 类加载器。
如果您想确定特定的类加载器不那样做 ...阅读源代码。然后如有必要使用不同行为的不同类加载器,或实现自己的 2 。
1 - 甚至不是方法或类名,IMO。 A&#34;类加载器&#34;加载类,我读了“#34; load&#34;具有不适用于其他事物的特定技术含义。
2 - 可能存在难以理解的情况。例如,一个类加载器,它从需要在单个I / O操作中读取数据的设备读取。
答案 1 :(得分:0)
这是一个InputStream
。当你读取它时,它会被读取。没有神秘感。