Como "escrever" array de string em um arquivo de texto?
7 respostas
R
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.
importjava.awt.List;importjava.io.BufferedReader;importjava.io.File;importjava.io.FileNotFoundException;importjava.io.FileOutputStream;importjava.io.FileReader;importjava.io.IOException;importjava.io.ObjectOutputStream;importjava.util.ArrayList;importjava.util.Collections;publicclassLeitura_Grava{publicstaticvoidmain(String[]args)throwsIOException{// TODO Auto-generated method stubFilef=newFile("C:/teste.txt");FileReaderfr=newFileReader(f);BufferedReaderbfr=newBufferedReader(fr);ArrayList<String>linha=newArrayList<>();while(bfr.ready()){linha.add(bfr.readLine());}Collections.sort(linha);System.out.println(linha.toString());bfr.close();fr.close();Filef2=newFile("C:/arquivocopia.txt");FileOutputStreamfout=newFileOutputStream(f2);ObjectOutputStreamobjout=newObjectOutputStream(fout);for(inti=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
Obs 1: Isso não é regra, mas vai ajudar a resolver seu problema.
Obs 2: ObjectOutputStream não serve para o que você pensa
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.
importjava.awt.List;importjava.io.BufferedReader;importjava.io.File;importjava.io.FileNotFoundException;importjava.io.FileOutputStream;importjava.io.FileReader;importjava.io.IOException;importjava.io.ObjectOutputStream;importjava.util.ArrayList;importjava.util.Collections;publicclassLeitura_Grava{publicstaticvoidmain(String[]args)throwsIOException{// TODO Auto-generated method stubFilef=newFile("C:/teste.txt");FileReaderfr=newFileReader(f);BufferedReaderbfr=newBufferedReader(fr);ArrayList<String>linha=newArrayList<>();while(bfr.ready()){linha.add(bfr.readLine());}Collections.sort(linha);System.out.println(linha.toString());bfr.close();fr.close();Filef2=newFile("C:/arquivocopia.txt");FileOutputStreamfout=newFileOutputStream(f2);ObjectOutputStreamobjout=newObjectOutputStream(fout);for(inti=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
Obs 1: Isso não é regra, mas vai ajudar a resolver seu problema.
Obs 2: ObjectOutputStream não serve para o que você pensa
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
raikone14
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çãoFilew=newFile("C:/teste2.txt");FileWriterwt=newFileWriter(w);BufferedWriterbwt=newBufferedWriter(wt);//aqui estou perdidofor(inti=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
raikone14
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.
importjava.awt.List;importjava.io.BufferedReader;importjava.io.File;importjava.io.FileNotFoundException;importjava.io.FileOutputStream;importjava.io.FileReader;importjava.io.IOException;importjava.io.ObjectOutputStream;importjava.util.ArrayList;importjava.util.Collections;publicclassLeitura_Grava{publicstaticvoidmain(String[]args)throwsIOException{// TODO Auto-generated method stubFilef=newFile("C:/teste.txt");FileReaderfr=newFileReader(f);BufferedReaderbfr=newBufferedReader(fr);ArrayList<String>linha=newArrayList<>();while(bfr.ready()){linha.add(bfr.readLine());}Collections.sort(linha);System.out.println(linha.toString());bfr.close();fr.close();Filef2=newFile("C:/arquivocopia.txt");FileOutputStreamfout=newFileOutputStream(f2);ObjectOutputStreamobjout=newObjectOutputStream(fout);for(inti=0;i<linha.size();i++){objout.writeObject(linha.toString());//issso que não vai ********************************}}}
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
importjava.awt.List;importjava.io.BufferedReader;importjava.io.BufferedWriter;importjava.io.File;importjava.io.FileNotFoundException;importjava.io.FileReader;importjava.io.FileWriter;importjava.io.IOException;importjava.util.ArrayList;importjava.util.Collections;publicclassLeitura_Grava{publicstaticvoidmain(String[]args)throwsIOException{// TODO Auto-generated method stubFilef=newFile("C:/teste.txt");FileReaderfr=newFileReader(f);BufferedReaderbfr=newBufferedReader(fr);ArrayList<String>linha=newArrayList<>();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**************Filew=newFile("C:/teste2.txt");FileWriterwt=newFileWriter(w);BufferedWriterbwt=newBufferedWriter(wt);for(inti=0;i<linha.size();i++){bwt.write(linha.toString());;}bwt.flush();bwt.close();}}