getClass().getClassLoader().getResourceAsStream()

2019-04-19 15:10发布

问题:

I have a resource (velocity template) which I'd like to be able to swap during development. However,

getClass().getClassLoader().getResourceAsStream() 

seems to cache the template. Is there a way to disable this besides using a file loader instead of the class loader?

回答1:

To avoid caching you can use:

getClass().getClassLoader().getResource().openStream()

It would be equal to using URLResourceLoader for Velocity instead of ClasspathResourceLoader I suppose. I would just go with a file loader.



回答2:

See if something like this helps (exception handling omitted):

URL res = getClass().getClassLoader().getResource(resName);
if (res != null) {
    URLConnection resConn = res.openConnection();
    resConn.setUseCaches(false);
    InputStream in = resConn.getInputStream();
}