1 package Arquivos; 2 3 import java.io.File; 4 import java.io.FileInputStream; 5 import java.io.FileOutputStream; 6 import java.io.IOException; 7 import java.io.ObjectInputStream; 8 import java.io.ObjectOutputStream; 9 import java.util.List; 10 import java.util.ArrayList; 11 12 13 // Referencia: 14 // http://www.javasimples.com.br/core-java/serializacao-transformando-objetos-em-bytes 15 public class Crud 16 { 17 18 public void serializar(List<String> filmes, String arquivo) 19 { 20 FileOutputStream arq = null; 21 ObjectOutputStream out = null; 22 try 23 { 24 //arquivo no qual os dados vao ser gravados 25 arq = new FileOutputStream(arquivo); 26 27 //objeto que vai escrever os dados 28 out = new ObjectOutputStream(arq); 29 30 //escreve todos os dados 31 out.writeObject(filmes); 32 } 33 catch (IOException ex) 34 { 35 ex.printStackTrace(); 36 } 37 finally 38 { 39 try 40 { 41 arq.close(); 42 out.close(); 43 } 44 catch (IOException ex) 45 { 46 ex.printStackTrace(); 47 } 48 } 49 } 50 51 public List<String> deserializar(String arquivo) 52 { 53 FileInputStream arqLeitura = null; 54 ObjectInputStream in = null; 55 List<String> lista = null; 56 try 57 { 58 File destinationFile = new File(arquivo); 59 if (!destinationFile.exists()) 60 { 61 serializar(new ArrayList<String>(), arquivo); 62 } 63 64 //arquivo onde estao os dados serializados 65 arqLeitura = new FileInputStream(arquivo); 66 67 //objeto que vai ler os dados do arquivo 68 in = new ObjectInputStream(arqLeitura); 69 70 //recupera os dados 71 lista = (List<String>) in.readObject(); 72 } 73 catch (ClassNotFoundException ex) 74 { 75 ex.printStackTrace(); 76 } 77 catch (IOException ex) 78 { 79 ex.printStackTrace(); 80 } 81 finally 82 { 83 try 84 { 85 arqLeitura.close(); 86 in.close(); 87 } 88 catch (IOException ex) 89 { 90 ex.printStackTrace(); 91 } 92 } 93 return lista; 94 } 95 } 96
sexta-feira, 7 de novembro de 2014
Java: Serializar e deserializar lista de objetos, salva-lo em arquivo e recuperá-lo em lista de objetos novamente
Esta classe tem me ajudado muito desde o dia em que foi criada. Já reaproveitei pelo menos 5 vezes.
Nenhum comentário:
Postar um comentário