Duvidas para gravar Arquivos em texto

4 respostas
J

Foi solicitado pelo Tutor que fizessemos o metodo so para gravar os arquivos, não estou conseguindo incluir em modo de texto que seria o getTexto e o JOp esta dando erro, alguem pode me ajudar.
O enunciado do Tutor se encontra abaixo:

1-Escrever o trecho de um código de uma classe Java utilizando somente o método para Gravar os seguintes dados de um aluno: Matricula, nome, endereço e telefone em um arquivo texto.

public void gravarArquivo(){
try {
setar.fSalvar.show();
if (setar.fSalvar.getFile() == null)
return;
fileName = setar.fSalvar.getDirectory() + setar.fSalvar.getFile();
FileWriter writer = new FileWriter(fileName);
for(Aluno : cadastro.getCadAlunos())
writer.write("Matricula: " + aluno.getMatricula() +
"\nNome: " +aluno.getNome()+
"\nEndereço: " + aluno.getEndereço()+
"\nTelefone: " + aluno.getTelefone());

writer.close();
setar.setTfield("Arquivo Salvo!");
} catch (IOException exc) {
setar.setTfield("Erro ao gravar!");
}
}

public void actionPerformed(ActionEvent e) {
if (clean == e.getSource()) { // Limpa os todos os campos da tela de cadastro
limparTela();
}
if (save == e.getSource()) { // Salva o cadastro em ArrayList
adicionarAluno();
}
if (rec == e.getSource()) { //Grava os dados do ArrayList em arquivo de texto
gravarArquivo();
}
if (exit == e.getSource()) { // Sai do sistema
System.exit(0);
}
}
}

4 Respostas

Cesar_Kuehl

Se entendi bem a sua pergunta, você está com problemas para gravar o texto para arquivo, segue abaixo o que eu faria:

public void gravarArquivo() {
		BufferedWriter writer = null;	
		
		try {  
		      setar.fSalvar.show();  

		      if (setar.fSalvar.getFile() == null)  
		         return;  

		      String fileName = setar.fSalvar.getDirectory() + setar.fSalvar.getFile();  
		      writer = new BufferedWriter(new FileWriter(fileName));

		      for(Aluno umAluno : cadastro.getCadAlunos()) { 
		    	 writer.write("Matricula: "  + umAluno.getMatricula() +  
		    			      "\nNome: "     + umAluno.getNome()+  
		    			      "\nEndereço: " + umAluno.getEndereço()+  
		    			      "\nTelefone: " + umAluno.getTelefone());
		    	 writer.newLine();
		      }
		      
		      writer.close();
		 	  setar.setTfield("Arquivo Salvo!");  
		} 
		catch (IOException exc) {  
			setar.setTfield("Erro ao gravar!");  
		}
	}
J

Boa Tarde Cesar, é isso mesmo, conforme o enunciado acima solicita, mas para falar a verdade não entendi direito a solicitação do tutor, por isso fiz o que pensei e procurei a ajuda de vocês; entendi gravar em texto so os metodos. mas valeu.

Cesar_Kuehl

Realmente a pergunta é um pouco estranha e pode gerar confusão, mas acredito que ele queira mesmo que você grave em um arquivo de texto os dados do Aluno que ele informou na pergunta.

Se for isso, o código que te passei atende, só observei um trecho em que pode existir um problema, este abaixo:

String fileName = setar.fSalvar.getDirectory() + setar.fSalvar.getFile();

O que retorna neste getDirectory e neste getFile? Se for só o nome do diretório e só o nome do arquivo, sem o separador, o código vai gerar uma exception…

Se getDirectory retornar C: e getFile retornar alunos.txt, a variavel fileName ficará: C:alunos.txt (caminho inválido para o Windows), se este for o caso, troque a linha:

String fileName = setar.fSalvar.getDirectory() + setar.fSalvar.getFile();

Por:

String fileName = setar.fSalvar.getDirectory() + File.separator + setar.fSalvar.getFile();
J

Boa Noite Sr. Cesar, muito obrigado pela sua atenção, que Deus te abençoe.

Criado 14 de outubro de 2011
Ultima resposta 14 de out. de 2011
Respostas 4
Participantes 2