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

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   ********************************
    
    
   }
    
 }

}

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:

[quote=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   ********************************
    
    
   }
    
 }

}

[/quote]

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!

[quote=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: [/quote]

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

[quote=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: [/quote]

[code]//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());;
	  
	
  }
	  
	  
  }
		  
     
}

[/code]

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

[quote=Luiz Augusto Prado][quote=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   ********************************
    
    
   }
    
 }

}

[/quote]

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![/quote]

Imprimindo para ler agora…
vlwsssss

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

[code]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();  
  }
		  
     
}

[/code]

Já deu certo,Obrigado pessoal…