Una parte de mi programa consiste en la escritura y lectura de ficheros.
Tengo este código para escribir en el fichero y funciona bien. Este código recorre un arraylist de objetos y los va escribiendo en el fichero.
Código Java:
Ver original
String fecha_fabricacion, float kilometros, float tara, float carga_maxima, int numero_ruedas, float precio, String observaciones) throws IOException{ Camiones camion = new Camiones(numero_registro, marca, modelo, color_carroceria, fecha_fabricacion, kilometros, tara, carga_maxima, numero_ruedas, precio, observaciones); camiones.add(camion); for (int i=0; i<camiones.size(); i++){ Camiones cam = camiones.get(i); oos.writeObject(cam); } oos.close(); }
Por otra parte, tengo este código para leer los objetos del fichero y también me funciona.
Código Java:
Ver original
try{ while(true){ Camiones camion = (Camiones) ois.readObject(); System.out.printf("%-20s%-15s%-15s%-15s%-15s%-15s%-15s%-15s%-15s%-15s%-15s\n","Numero registro","Marca","Modelo","Color","Fecha Fab.","Kilometros","Tara","Carga max.","Num. Ruedas","Precio","Observaciones"); System.out.printf("%-20s%-15s%-15s%-15s%-15s%-15s%-15s%-15s%-15s%-15s%-15s\n","===============","=====","======","=====","==========","==========","====","==========","===========","======","============="); System.out.printf("%-20s%-15s%-15s%-15s%-15s%-15s%-15s%-15s%-15s%-15s%-15s\n",camion.getNumero_registro(),camion.getMarca(),camion.getModelo(),camion.getColor_carroceria(), camion.getFecha_fabricacion(),camion.getKilometros(),camion.getTara(),camion.getCarga_maxima(),camion.getNumero_ruedas(), camion.getPrecio(),camion.getObservaciones()); } //io.printStackTrace(); }finally{ ois.close(); } }
La cosa es que necesito modificar el método de leer en el fichero de forma que por ejemplo si introduzco un numero de registro, me lea solo el objeto con ese numero de registro y me lo saque por pantalla.
He probado así y de más formas, pero sin éxito.
Código Java:
Ver original
//El mismo metodo de leer pero con condición. while(true){ Camiones camion = (Camiones) ois.readObject(); int codigo = sc.nextInt(); if(codigo == camion.getNumero_registro()){ //Si se cumple, pinta los datos
¿Alguna ayuda?