Problema com leitura de arquivo

Olá pessoal!

Estou tentando fazer a leitura de um arquivo, mais não estou obtendo sucesso.

Tenho seguinte trecho de código:

        FileInputStream template = new FileInputStream(new File("resources/modelo_email_aprovacao_ppsc_almoxarifado.html")); 

Quando tento rodar este código em meu container é exibido a seguine mensagem de erro:

java.io.FileNotFoundException: resources\modelo_email_aprovacao_ppsc_almoxarifado.html (O sistema não pode encontrar o arquivo especificado)

O mais estranho é que o sistema consegue encontrar o arquivo normalmente quando tento rodar este mesmo código através do método “Main”, ou seja, indo em “Run As-> Java Application”!!!

Alguém sabe o que pode estar acontecendo???

Tente receber o arquivo desta maneira: getClass().getResourceAsStream("/resources/modelo_email_aprovacao_ppsc_almoxarifado.html");

Não funcionou! Retornou null.

Coloquei desta forma:

FileInputStream template = getClass().getResourceAsStream("/resources/modelo_email_aprovacao_ppsc_almoxarifado.html");

resources é um pacote?

Não, é uma pasta que fica na raiz do projeto, no mesmo local onde fica a pasta “src” e “WebContent” por exemplo.

O caminho do arquivo é relativo… depende de onde vc mandou executar o programa…

Dentro do eclipse… é como se vc tivesse mandado rodar da pasta do projeto…

No console… provavelmente vc está tentando executar de outra pasta… aí o caminho relativo nao encontra o arquivo

[quote=rogelgarcia]O caminho do arquivo é relativo… depende de onde vc mandou executar o programa…

Dentro do eclipse… é como se vc tivesse mandado rodar da pasta do projeto…

No console… provavelmente vc está tentando executar de outra pasta… aí o caminho relativo nao encontra o arquivo[/quote]

Mais eu estou tentando rodar pelo Eclipse mesmo, e não está encontrando o arquivo…

1 - Você pode mudar o caminho do arquivo para dentro de um pacote? Se sim, desta forma abaixo você consegue acessá-lo:

void testaAcessoAArquivo(){ InputStream template = getClass().getResourceAsStream("/modelo_email_aprovacao_ppsc_almoxarifado.html"); System.out.println(template); }

O caminho é relativo a pasta do projeto…

Tem que haver na raiz do seu projeto a pasta resources e dentro dela ter o arquivo

Se o arquivo existir na pasta correta e nao tá achando… talvez vc tenha mudado o diretório de execucao em algum lugar (é o working dir)

E é o código original que vc mandou… nao tem que por / no inicio nao

FileInputStream template2 = new FileInputStream(new File("pasta1/modelo_email_aprovacao_ppsc_almoxarifado.html"));

Meu teste acima funcionou… Criei uma pasta dentro do projeto e usei o mesmo acima…