Método filereader não mostra todo o conteúdo do arquivo.txt [Resolvido]

2 respostas
Guevara

Olá pessoal!
Fiz um profeto de agenda aqui, tá gravando no arquivo.txt e está lendo também, porém não lê todos os nomes que digitei, ele lê apenas o último nome digitado e manda pro meu jTextArea.

Imagem abaixo do resultado ao clicar no botão “Ler”:

Abaixo o código para Gravar no arquivo.txt:

private void gravarButtonActionPerformed(java.awt.event.ActionEvent evt) {                                             
        // TODO add your handling code here:
        try {
        File file = new File("/home/bruno/arquivo.txt");//cria o arquivo.txt
        FileWriter fileWriter = new FileWriter(file,true);//instância o arquivo
        BufferedWriter buffer = new BufferedWriter(fileWriter);
    
        buffer.write(nomeText.getText());//escreve no arquivo.txt
        buffer.newLine();//quebra de linha
        buffer.flush();
        buffer.close();

        }
        catch (Exception e) {
        JOptionPane.showMessageDialog(null,"Não foi possível gravar arquivo!"); 
       }
}

E Este é o código para ler os dados digitados ao clicar no botão “Ler”:

private void lerButtonActionPerformed(java.awt.event.ActionEvent evt) {                                          
        // TODO add your handling code here:
        
        try {
        File file = new File("/home/bruno/arquivo.txt");
        FileReader reader = new FileReader("/home/bruno/arquivo.txt");
        BufferedReader buffer = new BufferedReader(reader);
      
        String str;
        while ((str = buffer.readLine())!= null) {
            areaText.setText(str);                       
        }
        
        reader.close();
               
        buffer.close();
                
        }
            catch (Exception e) {
            JOptionPane.showMessageDialog(null,"Não foi possível ler o arquivo!"); 
       }
        
    }

Ao gravar os dados no arquivo.txt reparei que ele não grava a primeira linha, apenas da segunda em diante.

Alguma idéia de onde estão os erros?

[]s

2 Respostas

xandevieira

o problema acho q esta aqui. Independente de quantas linhas contenha o arquivo, vc esta sempre setando coisa nova no “str”, o q vc deveria dazer é concatenando a “str”.

String str;  
         while ((str = buffer.readLine())!= null) {  
             areaText.setText(str);                         
         }
Guevara

Resolvi desta forma:

Mudei um detalhe no código, conforme abaixo:

private void lerButtonActionPerformed(java.awt.event.ActionEvent evt) {                                          
        // TODO add your handling code here:
        
        try {

          FileReader reader = new FileReader("/home/bruno/arquivo.txt");  
          BufferedReader leitor = new BufferedReader(reader);  
        
            String str;  
            while ((str = leitor.readLine())!= null) {  
            
                areaText.append(str+"\n"); //aqui ele  o arquivo pulando uma linha                        
             
             } 
           
         leitor.close();
         reader.close();         
    
        
        }
            catch (Exception e) {
            JOptionPane.showMessageDialog(null,"Não foi possível ler o arquivo!"); 
       }
        
    }

[]s

Criado 25 de fevereiro de 2009
Ultima resposta 28 de fev. de 2009
Respostas 2
Participantes 2