Hola, buen dia gente del foro
Estoy haciendo un trabajo para la universidad y tengo un problema, me piden que cargue por teclado n cantidad de objetos (ejemplares) en un archivo y luego muestre el archivo.
El problema es cuando intento mostrar el archivo no sale nada, solo figura el mensaje "Fin del archivo" pero no muestra el objeto.
Les dejo las clases para que puedan ver el codigo:
Clase Principal:
Código Java:
Ver originalpublic class ExamenFinal {
/**
* @param args the command line arguments
*/
public static void main
(String[] args
) { // TODO code application logic here
Archivo a;
Ejemplar ejemplar;
String nombre
="dato1.dat",descripcion
; int codigo,tipo,origen,stock,op;
//System.out.println("Ingrese el nombre del archivo: ");
//nombre=In.readLine();
a = new Archivo(nombre);
System.
out.
println("Ingrese el codigo del ejemplar: "); codigo=In.readInt();
while(codigo!=-1){
System.
out.
println("Ingrese la descripcion del ejemplar: "); descripcion=In.readString();
System.
out.
println("Ingrese el tipo de ejemplar: "); tipo=In.readInt();
System.
out.
println("Ingrese el origen del ejemplar: "); origen=In.readInt();
System.
out.
println("Ingrese el stock del ejemplar: "); stock=In.readInt();
ejemplar = new Ejemplar(codigo,descripcion,tipo,origen,stock);
a.addArchivo(ejemplar);
System.
out.
println("Ingrese el codigo del siguiente ejemplar, si desea ir al menu ingrese -1: "); codigo=In.readInt();
}
do{
System.
out.
println("\t\t//////MENU//////"); System.
out.
println("\n\t1)Mostrar los datos del archivo\n\t5)Salir\n\tIngrese una opcion: "); op=In.readInt();
switch(op){
case 1: System.
out.
println(a.
mostrarArchivo()); break;
default: System.
out.
println("La opcion ingresada no es correcta"); }
}while(op!=5);
}
}
Clase Ejemplar:
Código Java:
Ver originalpublic class Ejemplar {
private int codigo;
private int tipo;
private int origen;
private int stock;
private String origenDes
[]={"Nacional",
"Internacional"};
public Ejemplar
(int codigo,
String descripcion,
int tipo,
int origen,
int stock
) { this.codigo = codigo;
this.descripcion = descripcion;
this.tipo = tipo;
this.origen = origen;
this.stock = stock;
}
public int getCodigo() {
return codigo;
}
public void setCodigo(int codigo) {
this.codigo = codigo;
}
public String getDescripcion
() { return descripcion;
}
public void setDescripcion
(String descripcion
) { this.descripcion = descripcion;
}
public int getTipo() {
return tipo;
}
public void setTipo(int tipo) {
this.tipo = tipo;
}
public int getOrigen() {
return origen;
}
public void setOrigen(int origen) {
this.origen = origen;
}
public int getStock() {
return stock;
}
public void setStock(int stock) {
this.stock = stock;
}
@Override
return "Ejemplar: " + "codigo: " + codigo + "\n descripcion: " + descripcion + "\n tipo: " + tipo + "\n origen: " + origenDes[origen] + "\n stock: " + stock;
}
}
Clase Archivo:
Código Java:
Ver originalimport java.io.*;
import java.util.*;
/**
*
* @author Fer
*/
public class Archivo {
public Archivo
(String nombre
){ archivo=nombre;
}
public String cerrarEscritura
(){ try{
if(oos!=null)
oos.close();
if(fos!=null)
fos.close();
r+="Error al escribir el archivo "+e.getMessage();
}
return r;
}
public String cerrarLectura
(){ try{
if(fis!=null)
fis.close();
if(ois!=null)
ois.close();
r+="Error al leer el archivo "+e.getMessage();
}
return r;
}
public String addArchivo
(Ejemplar o
){ try{
if(o!=null)
oos.writeObject(o);
r+="Error al guardar el objeto "+e.getMessage();
}finally{
r+=cerrarEscritura();
}
return r;
}
public String mostrarArchivo
(){ Ejemplar aux=null;
try{
while(true){
aux=(Ejemplar) ois.readObject();
r+="\n"+aux.toString();
}
r+="Fin del archivo";
}
r+="Error al mostrar el archivo "+e1.getMessage();
}finally{
r+=cerrarLectura();
}
return r;
}
}
Alguien me podria ayudar? desde ya muchas gracias!
Saludos!