Ver Mensaje Individual
  #1 (permalink)  
Antiguo 20/12/2015, 15:35
dardosmania
 
Fecha de Ingreso: julio-2015
Mensajes: 85
Antigüedad: 8 años, 9 meses
Puntos: 4
RandomAccessFile no se como leer bien los datos

Buenas.

Resulta que tengo el siquiente problema: Realiza un programa en Java que te permita modificar los datos de un departamento. el programa recibe desde linea de comandos el numero de departamento a modificar, el nuevo nombre de departamento y nueva localidad. si el departamento no existe visualiza un mensaje indicandolo.

Clase Departamento:
Código Java:
Ver original
  1. import java.io.Serializable;
  2.  
  3. public class Departamento implements Serializable //Acordarse Siempre!!!!!!!!!!!!!!!!
  4. {
  5.  
  6.     private String _nombre;
  7.     private int _identificador;
  8.     private String _localidad;
  9.  
  10.     public Departamento(String nombre, int identificador, String localidad)
  11.     {
  12.         _nombre = nombre;
  13.         _identificador=identificador;
  14.         _localidad = localidad;
  15.  
  16.     }
  17.  
  18.     public String get_nombre() {
  19.         return _nombre;
  20.     }
  21.  
  22.     public void set_nombre(String nombre) {
  23.         this._nombre = nombre;
  24.     }
  25.  
  26.     public int get_identificador() {
  27.         return _identificador;
  28.     }
  29.  
  30.     public void set_identificador(int identificador) {
  31.         this._identificador = identificador;
  32.     }
  33.  
  34.     public String get_localidad() {
  35.         return _localidad;
  36.     }
  37.  
  38.     public void set_localidad(String localidad) {
  39.         this._localidad = localidad;
  40.     }
  41.  
  42.  
  43.  
  44. }

Código Java:
Ver original
  1. public static void modificar()
  2.     {
  3.  
  4.         try
  5.         {
  6.             System.out.println("Introduce el identificador del Departamento");
  7.             int identificador= Integer.parseInt(sc.nextLine());
  8.  
  9.             File fichero = new File("Departamentos.dat");
  10.             RandomAccessFile random = new RandomAccessFile(fichero, "rw");
  11.             int posicion = (identificador - 1)*36;
  12.  
  13.             if(posicion<random.length()||posicion>0)
  14.             {
  15.                 System.out.println("Nuevo nombre");
  16.                 String nombre=sc.nextLine();
  17.  
  18.                 System.out.println("Localidad");
  19.                 String localidad = sc.nextLine();
  20.  
  21.                 random.seek(posicion);
  22.  
  23.                 random.writeChars(nombre);
  24.                 random.writeChars(localidad);
  25.  
  26.                 System.out.println("Datos modificados");
  27.  
  28.  
  29.  
  30.             }
  31.         }
  32.         catch(Exception e)
  33.         {
  34.  
  35.         }
  36.  
  37.     }

El problema esta en que no se usar esta clase con los metodos, al ejecutar este metodo todos los departamento que tenia y que podia visualizar a traves de la clase ObjectInputStream ahora no puedo verlos, no se muestra ninguno pero si yo entro al fichero y lo habro si que estan los objetos escritos.

No entiendo tampoco como indicale que String tiene que cambiar y me parece un poco de lio porque yo no leo por campos, leo por tipos. He buscado en internet sobre esta clase y sus metodos y no me aclaro nada ya que es lo mismo que se y que no consigo hacer funcionar.