getResourceAsStream()

Qual a diferença entre:

getClass().getResourceAsStream(“vendas.conf”);

e

Thread.currentThread().getContextClassLoader().getResourceAsStream(“vendas.conf”);

???

Pelo q eu li e entendi, é ovo no brasil e outro no japao, mas saiu da mesma galinha do nordeste. Ou seja, o método do getClass() chama o do seu ClassLoader, coisa que vc ta fazendo direto no Thread.

Eu acho :roll:

Só que o primeiro não funciona, mas o segundo sim.

getClass().getResourceAsStream(): procura o resource no mesmo diretorio do .class.

getClass().getClassLoader().getResourceAsStream(): procura no CLASSPATH.

[quote=“cv”]getClass().getResourceAsStream(): procura o resource no mesmo diretorio do .class.

getClass().getClassLoader().getResourceAsStream(): procura no CLASSPATH.[/quote]

Ahhhh…

Um post de 8 anos… ajudando até hoje… valeu gente!

1 curtida

Bom dia Diego,

Você poderia, por gentileza, ilustrar o seu exemplo, com código, etc… Obrigado!

[]'s

Sim, claro!

Antes de intender o método, eu estava utilizando da seguinte maneira…

getClass().getRessourceAsStream("arquivo.properties");

utilizando assim, o método presume que seu recurso está no mesmo pacote da classe em questão e não é necessário informar o caminho completo do recurso.
Desta maneira, só é possível localizar recuros dentro do pacote ou sub pacotes.

Da maneira abaixo, o classloader inicia a busca na raiz do classpath, sendo necessário informar todo o caminho e com isso, possibilitando a busca em qualquer pacote.

getClass().getClassLoader().getRessourceAsStream("com/teste1/arquivo.properties"); getClass().getClassLoader().getRessourceAsStream("com/arquivo.properties"); getClass().getClassLoader().getRessourceAsStream("com/teste2/arquivo.properties");