Salvar arquivo com ArrayList e depois Abri-lo!

9 respostas
guisantogui

Galera to com esse codigo ai.
Ele ta salvando legal, consegui executar o teste, mas ... me deu um branco, tipo quando eu quiser salvar um arquivo de verdade, tipo minha lista com os objetos instanciados nela, como eu passo ela no parametro do File?

public class TesteSalvar implements Serializable{

    public void salva(){
        try {
            File file = new File("Texto.txt");
            FileOutputStream fis = new FileOutputStream(file);
        }
        catch (IOException ioe){
            ioe.printStackTrace();
        }
    }
}

vlw :D

9 Respostas

Marky.Vasconcelos

Usa os métodos do FileOutputStream.

guisantogui

Dei uma pesquisada aqui, mas não encontrei nada, até onde eu entendo, que possa me ajudar!

Marky.Vasconcelos

Voce pode usar o ObjectOutputStream que tem o método writeObject e voce passa o seu objeto como parametro e tem o ObjectInputStream que pode ler com readObject.

guisantogui

Humm, vou tentar é que estou tentando salvar um arquivo que só rode nessa minha implementação, ou seja eu só vou visualizar os dados dele nela! Por que na realidade esse arquivo que estou tentando criar é apenas para carregar os dados da lista que estão salvos e a partir deles buscar, alterar e fazer operações com os que estão em um BD, achei mais facil essa opção do que toda hora que eu abrir o programa importar todos dados do banco, é uma idéia valida, correto?

Marky.Vasconcelos

Hmm… mas é necessario mesmo voce carregar todos os dados do banco? Talvez voce precise rever sua arquitetura.

guisantogui

Não é um banco muito grande, vou desenvolve-lo em PostGreslq, se fosse em Oracle, SQL Server, DB2, com certeza eu teria que pensar muito mais hehe :mrgreen:

Mesmo assim, acha que não devo carregar todos registros? por que?
E se tiver alguma ideia sobre o arquivo a ser salvo, neh! :wink:

guisantogui

Alguem? :wink:

Marky.Vasconcelos

Fiz um código para voce ver.

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.util.ArrayList;
import java.util.List;

public class FileTest {
	public static void main(String[] args) throws Exception {
		List<Person> list = new ArrayList<Person>();
		list.add(new Person("Marky", 18));
		list.add(new Person("Jhonny", 19));
		list.add(new Person("Doug", 60));

		File file = new File("arq.txt");
		ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream(
				file));
		out.writeObject(list);
		out.flush();
		out.close();

		ObjectInputStream in = new ObjectInputStream(new FileInputStream(file));
		List<Person> list2 = (List<Person>) in.readObject();
		in.close();
		for (Person p : list2)
			System.out.println(p);
		
	}

	public static class Person {
		private String name;
		private int age;

		public Person(String name, int age) {
			this.name = name;
			this.age = age;
		}

		public String toString() {
			return "Name: " + name + " age: " + age;
		}

	}
}
guisantogui

Obrigado, vou testar aki no meu sistema :smiley:

Criado 1 de abril de 2010
Ultima resposta 1 de abr. de 2010
Respostas 9
Participantes 2