Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Temas - ezar147

#1
Java / EOFException
4 Noviembre 2017, 20:32 PM
tengo un código que utilizo para leer los datos de un archivo, pero cuando ejecuto me genera un mensaje con el siguiente error: java.io.EOFException. he investigado un poco, y según lo que comprendo es que esta excepción se genera cuando me salgo del final de archivo.

aqui esta el codigo:
Código (java) [Seleccionar]

   try {
           archivoEntrada = new FileInputStream("prestamos.dat");
           entrada = new  ObjectInputStream(archivoEntrada);
           
           Prestamo aux = (Prestamo) entrada.readObject();
           while(aux != null){
               prestamos.add(aux);
               aux = (Prestamo) entrada.readObject();
           }
       } catch (Exception e) {
           JOptionPane.showMessageDialog(null, e);
       }
       finally{
           try {
               entrada.close();
           } catch (Exception e) {
           }
       }
   }

#2
tengo un pequeño inconveniente a la hora de crear un archivo binario puesto que el programa se ejecuta sin errores y no me genera excepciones, pero el archivo no se me crea.

los datos los estoy pasando de un arraylist.  
aqui les dejo el codigo:
Código (java) [Seleccionar]


try {
           archivoSalida = new FileOutputStream("prestamos.dat");
           salida = new ObjectOutputStream(archivoSalida);
           for(Prestamo p: prestamos){
               salida.writeObject(p);
           }
       } catch (Exception e) {
           JOptionPane.showMessageDialog(null, e);
       }
       finally{
           try {
               salida.close();
           } catch (IOException ex) {
               Logger.getLogger(AdminCooperativa.class.getName()).log(Level.SEVERE, null, ex);
           }
       }
}

#3
Tengo un archivo binario y quiero pasar los datos del archivo y registrarlos en una lista dinámica, pero al momento de hacerlo se me crean dos elementos en la lista aparte de los que están en el archivo. Quien me podría ayudar?

este es el código.
Código (cpp) [Seleccionar]


Clientes *registrar_cliente(){
Clientes *cliente = new Clientes; //se crea el un nuevo cliente.

if(P_inicio_cliente == NULL){ //en caso que no exista ningun elemento en la lista.

P_fin_cliente = cliente;
P_inicio_cliente = cliente;
cliente->P_ant = NULL;
cliente->P_sig = NULL;
}

else{ //si ya existen elementos en la lista.

cliente->P_ant = P_fin_cliente;
P_fin_cliente->P_sig = cliente;
cliente->P_sig = NULL;
P_fin_cliente = cliente;
}
return cliente;
}

int tomar_datos(){
ifstream clientesIn("clientes.dat",ios::in|ios::binary);
if(!clientesIn){
return -1;
}
else{
Clientes aux; //para tomar los datos del archivo y luego enviarlos a la lista
clientesIn.read((char*)&aux, sizeof(Clientes));
while(!clientesIn.eof()){
*registrar_cliente() = aux;
clientesIn.read((char*)&aux, sizeof(Clientes));
}
clientesIn.close();
}
}