Erro ao gerar arquivo texto

3 respostas
rodrigo_gomes

Olá pessoal,

Bom, eu estou usando o seguinte codigo pra gerar um arquivinho de texto (a partir de um Servlet).

FileWriter writer = new FileWriter("../../arquivos/meuArquivo.txt");        
	     PrintWriter saida = new PrintWriter(writer);
	 			                 
             saida.println(conteudoArquivo);

	     saida.close();
 	     writer.close();

conteudoArquivo é uma String.

A questão é: quando eu compilo a servlet, restarto o tomcat funciona beleza, o arquivo é gerado.
Mas se eu reiniciar o tomcat aí da :

../../arquivos/meuArquivo.txt (No such file or directory)

Mesmo sem eu mexer em nada...e se eu compilar de novo (sem mexer em uma linha sequer) e rodar, funciona...

Alguem sabe porque acontece isso?

Obrigado

3 Respostas

_fs

Hum, não sei se é um erro, mas normalmente para conseguir o caminho relativo de algum diretório a partir de alguma classe Java, faz-se:

// o caminho começa a partir do diretório da classe
getClass().getResoueceAsStream( String path );

// o caminho começa a partir do diretório da aplicação
getClass().getClassLoader().getResoueceAsStream( String path );

Tente desta forma.

rodrigo_gomes

Olá LIPE, obrigado pela resposta!

Eu tava tentando assim (nome é o uma String com caminho + nome do arquivo)
File arquivo = new File(nome);
			
			if(arquivo.exists()){
				
				arquivo.delete();
				arquivo.createNewFile();
				
			}else{
				
				arquivo.createNewFile();
				
			}
			
		        FileWriter writer = new FileWriter(arquivo);
			PrintWriter saida = new PrintWriter(writer);
			 			                 
		       saida.println(conteudo);

			saida.close();
			writer.close();

e funcionou sem problemas
ja reiniciei o tomcat umas 5 vezes pra testar e todas deram certo..

Mas vou testar da maneira que você me passou tambem, obrigado

Rodrigo

F

Olá,

O problema de usar o caminho hardcode é que se por algum motivo tu mudar o diretorio da aplicação terá que recompilar tudo. Fazendo como o LIPE mostrou não terá esse problema.

]['s

Criado 2 de março de 2005
Ultima resposta 2 de mar. de 2005
Respostas 3
Participantes 3