Como guardar dados em ficheiros em java

luismauricio

Power Member
Boas tardes, precisava de guardar umas listas de dados de um pequeno programa em Java que criei para depois ao iniciar o programa ele ler mas não sei como o fazer nem quais as formas indicadas. Agradecia se me poderem ajudar.
 
Guardar dados no ficheiro, quer dizer, escrever no ficheiro certo?

Existem pelo menos duas classes para isso:
BufferedWriter
PrintWriter

Como escrever?
BufferedWriter escritor = new BufferedWriter(new FileWriter(args[0])); //args[0] ou nome do file
escritor.write(dados + "\r\n");

Depois tens que fechar o buffer, com o escritor.close();

A classe PrintWriter também faz o mesmo, mas tem mais metodos à disposição.

Qualquer dúvida, reporta ;)
 
Eu faço assim:

BufferedWriter out = new BufferedWriter(new FileWriter("Noticias.txt"));

out.write("String que queres escrever ou la o k seja");

out.close(); //Para fechar o acesso ao ficheiro


EDIT: Não vi k o madonion ja tinha respondido igual :)
 
Ou um exemplo com o printwriter.


PrintWriter pw=new PrintWriter(new FileWriter(nomeFich));
pw.println("Bla bla");
pw.close();

com um throw ou um try catch para o IOException
 
Eu tenho uma lista de de objectos, neste caso o objecto é "cliente" com os vários atributos que lhe pertence e gostava de guardar essa lista de objectos ao sair do programa e carregar ao iniciar. obrigado.
 
Se tiveres um Objecto "Cliente" o que podes tentar fazer é:

Código:
Cliente cliente = new Cliente();
....
try {
      FileOutputStream fos = new FileOutputStream("clientes.dat");
      ObjectOutputStream oos = new ObjectOutputStream(fos);
      oos.writeObject(cliente);
      oos.close();
      }
   catch (Exception e) { e.printStackTrace(); }
}
....

Para recuperar na leitura:
Código:
Cliente cliente = new Cliente();
.....
try {
    FileInputStream fis = new FileInputStream("clientes.dat");
    ObjectInputStream ois = new ObjectInputStream(fis);
    cliente = (Cliente) ois.readObject();
    ois.close();
}
   catch (Exception e) { e.printStackTrace();
  }
....

Experimenta.

Importante: a tua declaraçao de Cliente tem de implementar Serializable.

class Cliente implements Serializable
 
Última edição:
Serializable é uma como uma etiqueta que se "cola" á class que desenvolves, nao tem metodos nenhums associados, garante a persistencia dos dados, sendo possivel num futuro reconstruir o objecto.
A class ObjectOutputStream apenas serializa objctos que implementem esta interface.
Espero que tenhas conseguido apanhar o conceito.
 
Obrigado mcog_blaster mas acho que vou ter de ler ainda uns tutoriais para perceber mais de Java. Já agora, sem querer repetir algum post anterior, sabem onde posso encontrar tutoriais Java incidindo mais sobre a criação de interface gráfico, pois para fazer uma selecção do Google levaria horas.
 
Back
Topo