package lectura_escritura_archivos; /** @author jp.av.dev@gmail.com */ import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.EOFException; import java.io.FileInputStream; import java.io.IOException; import java.io.ObjectInputStream; import javax.swing.BoxLayout; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JScrollPane; import javax.swing.JTable; import javax.swing.table.DefaultTableModel; public class LeerArchivoBinario extends JFrame { private ObjectInputStream entrada; private DefaultTableModel modelo; public LeerArchivoBinario() { modelo = new DefaultTableModel(); modelo.addColumn("Nombre"); modelo.addColumn("Dirección"); modelo.addColumn("Nacionalidad"); modelo.addColumn("Edad"); modelo.addColumn("Salario"); JTable table = new JTable(modelo); JScrollPane scroll = new JScrollPane(table); JButton boton = new JButton("Cargar Info"); boton.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { abrirArchivo(); leerRegistros(); cerrarArchivo(); } }); this.add(scroll); this.add(boton); this.setLayout(new BoxLayout(this.getContentPane(), BoxLayout.Y_AXIS)); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setVisible(true); this.pack(); } public void abrirArchivo() { try { entrada = new ObjectInputStream(new FileInputStream("C:\\archivos\\personas.ser")); } catch ( IOException ex) { ex.printStackTrace(); System.out.println("Error al abrir archivo"); } } public void leerRegistros() { Persona objPersona; try { while (true){ objPersona = (Persona)entrada.readObject(); String nombre = objPersona.getNombre(); String direccion = objPersona.getDireccion(); String nacionalidad = objPersona.getNacionalidad(); int edad = objPersona.getEdad(); double salario = objPersona.getSalario(); String[] datosPersona = {nombre, direccion, nacionalidad, String.valueOf(edad), String.valueOf(salario)}; modelo.addRow(datosPersona); } } catch ( EOFException endOfFileException) { return;//se llego al final del archivo } catch ( IOException ex) { System.err.println("Error de lectura de archivo"); } catch ( ClassNotFoundException ex) { System.err.println("Error de crearción de objeto"); } } public void cerrarArchivo() { try { if(entrada != null) { entrada.close(); } } catch (IOException ex) { System.err.println("Error al cerrar el archivo"); } } public static void main(String[] args) { LeerArchivoBinario leer = new LeerArchivoBinario(); } }