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 
Obs 1: Isso não é regra, mas vai ajudar a resolver seu problema.
Obs 2: ObjectOutputStream não serve para o que você pensa 
[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 
Obs 1: Isso não é regra, mas vai ajudar a resolver seu problema.
Obs 2: ObjectOutputStream não serve para o que você pensa
[/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 
Obs 1: Isso não é regra, mas vai ajudar a resolver seu problema.
Obs 2: ObjectOutputStream não serve para o que você pensa
[/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…