Título: ayuda con lectura y escritura de datos.ser
Publicado por: Toryas en 30 Octubre 2007, 04:50 am
hola les cuento la cosa es que quiero guardad los datos de mi progreama en archivos serializables y cosa que al salir del programa guarde los datos y al iniciar el programa cargue los datos pero teno un problemita la cosa esque al compilar todo bn peor el problema e sque cuendo lo corro s eme cae el programa aver si le pueden echar un ojo a la cosa plz aki van los codigos ojo el error lo puse alfinal puede que se amejor leer el error primero import java.io.*; public class Taller{ public static Listas listas = new Listas(); public static Taller obj = new Taller(); public static byte opc = 0; public static byte opc2 = 0; public static Cliente client; listas.leerDatos(); obj.menu(); } System. out. println( "\t\t\t\t MENU PRINCIPAL\n\n"); System. out. println( "\t\t\t 1.- Ingresar Cliente\n");//listo System. out. println( "\t\t\t 2.- Agregar Cliente\n ");//listo System. out. println( "\t\t\t 3.- Salir \n ");//listo System. out. print("\nIngrese opcion : "); try { opc = Byte. parseByte (teclado. readLine()); } System. out. println("\n\nIngrese solo Numeros"); obj.menu(); } switch (opc){ case 1 : obj.ingresarCliente(); break; case 2 :obj.agregarCliente(); obj.menu(); break; case 3 :listas.guarDatos(); break; default :System. out. println("\nINGRESE UNA OPCION VALIDA"); obj.menu(); break; } }//fin menu principal public void menuCliente ()throws IOException{ //menu cliente System. out. println( "\t\t\t\t MENU CLIENTE\n\n"); System. out. println( "\t\t\t 1.- Modificar Datos\n"); System. out. println( "\t\t\t 2.- Agregar Auto\n");//listo System. out. println( "\t\t\t 3.- Reparaciones de autos\n"); System. out. println( "\t\t\t 4.- Deuda\n"); System. out. println( "\t\t\t 6.- Regresar\n");//listo System. out. print("\nIngrese opcion : "); try { opc2 = Byte. parseByte (teclado. readLine()); } System. out. println("\n\nIngrese solo Numeros"); obj.menuCliente(); } switch (opc2){ case 1 :client.printAut(); obj.menuCliente(); break; case 2 :obj.agrarAudo(); obj.menuCliente(); break; case 3 :obj.agregarCliente(); break; case 4 : obj.menuCliente(); break; case 5 : obj.menuCliente(); break; case 6 : obj.menu(); break; default :System. out. println("\nINGRESE UNA OPCION VALIDA"); obj.menuCliente(); break; } }//fin Menu Cliente public void menuRep ()throws IOException{//menu Reparaciones System. out. println( "\t\t\t\t MENU PRINCIPAL\n\n"); System. out. println( "\t\t\t 1.- Agregar Reparacion\n"); System. out. println( "\t\t\t 2.- Modificar Reparacion\n "); System. out. println( "\t\t\t 3.- Regresar \n ");//listo System. out. print("\nIngrese opcion : "); try { opc = Byte. parseByte (teclado. readLine()); } System. out. println("\n\nIngrese solo Numeros"); obj.menu(); } switch (opc){ case 1 : obj.menuRep(); break; case 2 :obj.menuRep(); break; case 3 :obj.menuCliente(); break; default :System. out. println("\nINGRESE UNA OPCION VALIDA"); obj.menuRep(); break; } }//fin menu Reparaciones //Metodos Menu Principal String nombre, apellido,direccion,telefono,rut ; System. out. println("Ingrese Nombre"); nombre = teclado.readLine(); System. out. println("Ingrese Apellido"); apellido = teclado.readLine(); System. out. println("Ingrese rut"); rut = teclado.readLine(); System. out. println("Ingrese Direccion"); direccion = teclado.readLine(); System. out. println("Ingresar Telefono"); telefono = teclado.readLine(); listas.addCliente(new Cliente(nombre, apellido, rut,telefono, direccion)); } System. out. println("Ingrese rut de Cliente"); vrut = teclado.readLine(); client = listas.buscaCliente(vrut); if(client != null){ obj.menuCliente(); } else{ System. out. println("El cliente no existe"); obj.menu(); } }//Fin menu pricipal //Metosdos menu Cliente int anno; System. out. println("Patente del Auto"); patente = teclado.readLine(); System. out. println("Marca Del Auto"); marca = teclado.readLine(); System. out. println("Modelo Del Auto"); modelo = teclado.readLine(); System. out. println("Año Auto"); anno = Integer. parseInt(teclado. readLine()); client.addAuto(new Auto(patente,marca,modelo,anno)); } //Fin Metodos Menu Cliente }
este es el metodo de escritura: import java.io.*; import java.util.*; public class Escritura { // Abrir el fichero } // Cerrar el fichero if (output!=null) output.close(); } // Escribir en el fichero if (output!=null) output.writeObject(lista); } }
este el de lectura: import java.util.*; import java.io.*; public class Lectura { } if (input!=null ) input.close(); } if (input!=null) { try { } // Fin del fichero } } return lista; } }
y esta e sla clase de lo que estoy guardando import java.io.*; import java.util.*; public Cliente algo; public static Escritura clientx = new Escritura(); public static Listas lis = new Listas(); public Escritura escritura; public static Lectura lec; public Cliente buscaCliente (String vrut ){ int i; for(i=0;i<clientes.size();i++){ algo =(Cliente)clientes.get(i); if(vrut.equals(algo.getRut()) ){ return algo; } } return null; } public void addCliente (Cliente cliente )throws IOException{ clientes.add(cliente); } escritura.abrirA(); escritura.escribir(clientes); escritura.cerrar(); } lec.abrir(); clientes = lec.leer(); lec.cerrar(); } }
bueno el error que me tira es este: --------------------Configuration: <Default>-------------------- Exception in thread "main" java.lang.NullPointerException at Listas.leerDatos(Listas.java:32) at Taller.main(Taller.java:13)
Process completed.
Título: Re: ayuda con lectura y escritura de datos.ser
Publicado por: darkraider en 30 Octubre 2007, 08:20 am
Buenas, mira no se si habrás leido el error, pero te tira una NullPointerException, por lo tanto estas intentando acceder a algun metodo de una variable que apunta a null. Ahora, la clase que tira el error es la Lectura, pero como estas checkeando que el imput no es null, creo que el problema puede estar en acceder al archivo. Intenta usar alguna caja de dialogo del awt. Espero ayudarte salu2
Título: Re: ayuda con lectura y escritura de datos.ser
Publicado por: Casidiablo en 30 Octubre 2007, 15:32 pm
No le he echado bien ojo, pero creo que te falta incializar el objeto
public static Lectura lec;
Es decir, lo declaras pero no lo inicializas.... además sería bueno que le colocaras constructores a las clases.
Un saludo!
Título: Re: ayuda con lectura y escritura de datos.ser
Publicado por: Toryas en 31 Octubre 2007, 02:06 am
ya salucione sla cosa er alo que decia casidiablo tenia que inicializar la cosa
Título: Re: ayuda con lectura y escritura de datos.ser
Publicado por: Casidiablo en 31 Octubre 2007, 19:05 pm
Y donde está el código funcionando que no lo pillo?
Título: Re: ayuda con lectura y escritura de datos.ser
Publicado por: Toryas en 1 Noviembre 2007, 04:40 am
antes de subir el codigo corregido, quisiera arreglar otro problemita esque cuando el fichero no existe el que contiene los datos a cargar la aplicaiocne este s eme cuelga y no se como hacer que no s eme caiga no se ocmo ocupar el java.io.FileNotFoundException
Título: Re: ayuda con lectura y escritura de datos.ser
Publicado por: Casidiablo en 2 Noviembre 2007, 16:29 pm
Hay funciones para saber si el archivo existe o no.... lamento no recordar mis clases de Java, pero creo que era algo como fileExist(), o algo así. Busca un poco en el google. Aunque estoy seguro de que hay ejemplos en el post con chincheta de este subforo.
Un saludo!
Título: Re: ayuda con lectura y escritura de datos.ser
Publicado por: marioly en 3 Noviembre 2007, 15:32 pm
Hay metodos, como exists() de file, puedes verificar con eso. O manejar la excepcion
|