Como "escrever" array de string em um arquivo de texto?

7 respostas
R

to tentando fazer um programa que lê um arquivo txt,ordena ele , e grava ele de maneira ordenada em um outro arquivo txt.
Porém estou travado na parte de gravação do array.

import java.awt.List;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.IOException;
import java.io.ObjectOutputStream;
import java.util.ArrayList;
import java.util.Collections;

public class Leitura_Grava {

 public static void main(String[] args) throws IOException {
  // TODO Auto-generated method stub
      
   File f = new File("C:/teste.txt");
         FileReader fr = new FileReader(f);
         BufferedReader bfr = new BufferedReader(fr);
         
        ArrayList<String> linha = new ArrayList<>();
         
         while (bfr.ready()){
          linha.add(bfr.readLine());
       
         }
        
       Collections.sort(linha);
         System.out.println(linha.toString()); 
         bfr.close();
   fr.close();
  
    File f2 = new  File("C:/arquivocopia.txt");
    FileOutputStream fout = new FileOutputStream(f2);
    ObjectOutputStream objout = new ObjectOutputStream (fout);
   
   for(int i=0;i < linha.size(); i++){
    
    objout.writeObject(linha.toString());  //issso que não vai   ********************************
    
    
   }
    
 }

}

7 Respostas

Rodrigo_Sasaki

Você usou um BufferedReader para ler, então use o BufferedWriter para escrever :slight_smile:

Obs 1: Isso não é regra, mas vai ajudar a resolver seu problema.
Obs 2: ObjectOutputStream não serve para o que você pensa :slight_smile:

Luiz_Augusto_Prado

raikone14:
to tentando fazer um programa que lê um arquivo txt,ordena ele , e grava ele de maneira ordenada em um outro arquivo txt.
Porém estou travado na parte de gravação do array.

import java.awt.List;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.IOException;
import java.io.ObjectOutputStream;
import java.util.ArrayList;
import java.util.Collections;

public class Leitura_Grava {

 public static void main(String[] args) throws IOException {
  // TODO Auto-generated method stub
      
   File f = new File("C:/teste.txt");
         FileReader fr = new FileReader(f);
         BufferedReader bfr = new BufferedReader(fr);
         
        ArrayList<String> linha = new ArrayList<>();
         
         while (bfr.ready()){
          linha.add(bfr.readLine());
       
         }
        
       Collections.sort(linha);
         System.out.println(linha.toString()); 
         bfr.close();
   fr.close();
  
    File f2 = new  File("C:/arquivocopia.txt");
    FileOutputStream fout = new FileOutputStream(f2);
    ObjectOutputStream objout = new ObjectOutputStream (fout);
   
   for(int i=0;i < linha.size(); i++){
    
    objout.writeObject(linha.toString());  //issso que não vai   ********************************
    
    
   }
    
 }

}

esse fonte uma vez me ajudou.
com certeza pode lhe ajudar tbm:
http://www.javasimples.com.br/core-java/serializacao-transformando-objetos-em-bytes

Sucesso!

R

Rodrigo Sasaki:
Você usou um BufferedReader para ler, então use o BufferedWriter para escrever :slight_smile:

Obs 1: Isso não é regra, mas vai ajudar a resolver seu problema.
Obs 2: ObjectOutputStream não serve para o que você pensa :slight_smile:

Obrigado,mas o ObjectOutputStream,não serve para “gravar” linha a linha?
to quebrando a cabeça,mas to aprendendo muito com isso…
vlwss

R
Rodrigo Sasaki:
Você usou um BufferedReader para ler, então use o BufferedWriter para escrever :)

Obs 1: Isso não é regra, mas vai ajudar a resolver seu problema.
Obs 2: ObjectOutputStream não serve para o que você pensa :)

//aqui começa a gravação
         
      File w = new File("C:/teste2.txt");
      FileWriter wt =new FileWriter (w);
      BufferedWriter bwt = new BufferedWriter(wt);
      
      //aqui estou perdido
      for(int i=0;i < linha.size(); i++){  
    	bwt.write(linha.toString());;
    	  
    	
      }
    	  
    	  
      }
    		  
         
    }

Não seria assim cara? agora não tenho ideia pq não vai....vlwsss

R

Luiz Augusto Prado:
raikone14:
to tentando fazer um programa que lê um arquivo txt,ordena ele , e grava ele de maneira ordenada em um outro arquivo txt.
Porém estou travado na parte de gravação do array.

import java.awt.List;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.IOException;
import java.io.ObjectOutputStream;
import java.util.ArrayList;
import java.util.Collections;

public class Leitura_Grava {

 public static void main(String[] args) throws IOException {
  // TODO Auto-generated method stub
      
   File f = new File("C:/teste.txt");
         FileReader fr = new FileReader(f);
         BufferedReader bfr = new BufferedReader(fr);
         
        ArrayList<String> linha = new ArrayList<>();
         
         while (bfr.ready()){
          linha.add(bfr.readLine());
       
         }
        
       Collections.sort(linha);
         System.out.println(linha.toString()); 
         bfr.close();
   fr.close();
  
    File f2 = new  File("C:/arquivocopia.txt");
    FileOutputStream fout = new FileOutputStream(f2);
    ObjectOutputStream objout = new ObjectOutputStream (fout);
   
   for(int i=0;i < linha.size(); i++){
    
    objout.writeObject(linha.toString());  //issso que não vai   ********************************
    
    
   }
    
 }

}

esse fonte uma vez me ajudou.
com certeza pode lhe ajudar tbm:
http://www.javasimples.com.br/core-java/serializacao-transformando-objetos-em-bytes

Sucesso!

Imprimindo para ler agora…
vlwsssss

R

Galera,agora ta gravando,porém ta gravando repetido...
Pensei que fosse o laço de repetição,porém parece estar certo....alguém sabe oq possa ser?
Obrigado

import java.awt.List;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collections;

public class Leitura_Grava {

    public static void main(String[] args) throws IOException {
        // TODO Auto-generated method stub
      
         File f = new File("C:/teste.txt");
         FileReader fr = new FileReader(f);
         BufferedReader bfr = new BufferedReader(fr);
         
        ArrayList<String> linha = new ArrayList<>();
        
    
        while (bfr.ready()){
             linha.add(bfr.readLine());
       
           
    
           
         }
        
       Collections.sort(linha);
         System.out.println(linha.toString()); 
         bfr.close();
         fr.close();
        
         
     //aqui começa a gravação**************
         
      File w = new File("C:/teste2.txt");
      FileWriter wt =new FileWriter (w);
      BufferedWriter bwt = new BufferedWriter(wt);
      

      for(int i=0;i < linha.size(); i++){  
    	bwt.write(linha.toString());;
    	  
    	
    	
      }
      bwt.flush();	  
      bwt.close();  
      }
    		  
         
    }
R

Já deu certo,Obrigado pessoal…

Criado 26 de agosto de 2013
Ultima resposta 30 de ago. de 2013
Respostas 7
Participantes 3