97 lines
3.2 KiB
Java
97 lines
3.2 KiB
Java
|
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();
|
||
|
}
|
||
|
}
|