Gravar treeset em um arquivo txt

4 respostas
lucasdona

boa tarde, como faço para gravar minha lista treeset em um txt? exemplo:
construo minha treeset, daí ela fica assim:
[1,2,3]
[3,4,5]

como gravar isso nun txt? e tmb depois se eu quiser continuar a gravação nao perder o que eu tinha já gravado antes.

no caso acho que no modo generalizado seria a gravação de um objeto em um arquivo ne?
Abraços, Lucas.

4 Respostas

pedroroxd

Faça algo do tipo:

FileWriter fw = new FileWriter("treeset.txt",true);
BufferedWriter bw = new BufferedWriter(fw);
bw.write("Algo");       
bw.newLine();
bw.close();
lucasdona

e como faço para ler ele de volta agora para minha treeset?
abraços…

renamed

Olá.
Por que você não usa as próprias classes do Java para guardar seu objeto em um arquivo?
Use as classes ObjectOutputStream e ObjectInputStream.
Veja esse exemplo usando TreeSet.

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.util.Set;
import java.util.TreeSet;

public class Princ {

	public static void main(String[] args) {
		Set<Integer> treeSet = new TreeSet<Integer>();
		
		/**
		 * Povoando o TreeSet com dez inteiros
		 */
		for(int i = 0; i < 10; i++){
			treeSet.add(new Integer(i));
		}
		
		gravarObjeto(treeSet); //gravando o objeto
		treeSet = null; //atribuindo nulo ao objeto
		treeSet = lerObjeto(); //recuperando o objeto
		for(Integer i : treeSet){
			System.out.println(i);
		}
	}
	
	
	public static void gravarObjeto(Object o){
		ObjectOutputStream oos = null;
		try{
			oos = new ObjectOutputStream(new FileOutputStream("TreeSet.dat"));
			oos.writeObject(o);
		
		} catch (IOException e) {
			e.printStackTrace();
		}finally{
			if (oos != null){
				try { oos.close(); } catch (IOException e) {}
			}
		}
	}
	
	public static TreeSet lerObjeto(){
		ObjectInputStream ois = null;
		try {
			ois = new ObjectInputStream(new FileInputStream("TreeSet.dat"));
			return (TreeSet)ois.readObject();
		} catch (Exception e) {	
			e.printStackTrace();
	
		} finally{
			if (ois != null){
				try { ois.close(); } catch (IOException e) { }
			}
		}
		return null;
	}

}

ok?

lucasdona

Dá primeira forma eu consegui, da segunda não deu certo, o txt saiu todo bixado, tentei varias formas e não consegui. :frowning:
eu tava querendo gravar a treeset, e depois ler o arquivo de volta pra poder fazer uma pesquisa, nesta primeira forma que consegui gravar o arquivo, como carrego ele de volta pra minha treeset? usando o filereader?
abraços.

Criado 23 de abril de 2010
Ultima resposta 27 de abr. de 2010
Respostas 4
Participantes 3