Producto.java
public class Producto implements java.io.Serializable {
// La serialización de un objeto permite
// escribir el estado de un objeto a un flujo de bytes.
private String nombre;
private int cantidad;
private float precio;
public Producto(String nombre, int cantidad, float precio) {
this.nombre = nombre;
this.cantidad = cantidad;
this.precio = precio;
}
public String toString(){
return ("Nombre: "+nombre+" Cantidad: "+cantidad+
" Precio: "+precio);
} " Precio: "+precio);
TestObjectStream.java
import java.io.*;
public class TestObjectStream {
public static void main(String[] args) {
try {
escribirProductos();
leerProductos();
leerProductos();
}
catch (Exception e) {
catch (Exception e) {
e.printStackTrace(System.err);
}
}
public static void escribirProductos() throws Exception {
// Crear objectos productos
Producto pan = new Producto("Pan", 6, 1.2f);
Producto leche = new Producto("Leche", 2, 2.5f);
Producto manzanas = new Producto("Manzanas", 5, 3f);
Producto brocoli = new Producto("Brocoli", 2, 5f);
Producto carne = new Producto("Carne", 2, 20f);
// Definir archivo de productos
ObjectOutputStream archivoProductos =
new ObjectOutputStream(
new FileOutputStream("productos.obj"));
// Escribir los productos en el archivo
archivoProductos.writeObject(pan);
archivoProductos.writeObject(leche);
archivoProductos.writeObject(manzanas);
archivoProductos.writeObject(brocoli);
archivoProductos.writeObject(carne);
// Cerrar el archivo
archivoProductos.close();
}
public static void leerProductos() throws Exception {
// Definir archivo de productos
ObjectInputStream archivoProductos =
new ObjectInputStream(
new FileInputStream("productos.obj"));
// Leer los productos del archivo
try {
ObjectInputStream archivoProductos =
new ObjectInputStream(
new FileInputStream("productos.obj"));
// Leer los productos del archivo
try {
while (true) {
Producto producto =
(Producto)archivoProductos.readObject();
System.out.println(producto);
(Producto)archivoProductos.readObject();
System.out.println(producto);
}
} catch (EOFException e) {
// Cerrar el archivo
archivoProductos.close();
archivoProductos.close();
}
}
0 comentarios:
Publicar un comentario