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");
andredecotia:
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…