Programación General > Java
Archivos En Java
markdark:
Hola necesito que me ayuden con este problema .... necesito guardar en un archivo un arreglo de objetos de la clase alumno en la clase alumno me piden nombre edad y direccion como hago para guardar un arreglo de objetos de esa clase y copmo hago para poder accesar a los datos de cada objeto?????' hracias espero me apoyen con este problemilla
antony_soluciones:
Hola
Primero la clase alumno debe estar serializada(osea que implementa la interfaz Serializable), segundo la clase que contiene el arreglo de objetos del tipo alumno también debe estar serializada y tercero se almacena en el discoduro con ObjectOutputStream pasandole como parametro al constructor un FileOutputStream, para leerlo se hace con ObjectInputStream y se le pasa un FileInputStream que contiene la ruta de donde quédó almacenado el objeto
Saludos.
markdark:
mmmm la verdad es que no te entendi nada ... seriaS TAN AMABLE DE MANDARME UN EJEMPLITO??? GRXS
antony_soluciones:
Aquí hay un ejemplito.
--- Código: Text ---public class NewClass { static class Serial implements Serializable{ public Integer valor = 5; public Serial(){ } } public static void main(String... a){ try { FileOutputStream fich = new FileOutputStream("C:/miObj.obj"); ObjectOutputStream obj = new ObjectOutputStream(fich); Serial s = new Serial(); s.valor = 10; obj.writeObject(s); obj.close(); FileInputStream fichIn = new FileInputStream("C:/miObj.obj"); ObjectInputStream objIn = new ObjectInputStream(fichIn); Serial sIn = (Serial)objIn.readObject(); System.out.println(sIn.valor); objIn.close();// BufferedOutputStream out = new BufferedOutputStream(System.out);// DataOutputStream data = new DataOutputStream(System.out);// data.writeBytes("hola mundo"); // data.close(); } catch (ClassNotFoundException ex) { Logger.getLogger(NewClass.class.getName()).log(Level.SEVERE, null, ex); } catch (IOException ex) { Logger.getLogger(NewClass.class.getName()).log(Level.SEVERE, null, ex); } }}
markdark:
disculpa por molestar pero este programa no ejecuta tuve que quitarle estas dos lineas
Logger.getLogger(NewClass.class.getName()).log(Level.SEVERE, null, ex);
Logger.getLogger(NewClass.class.getName()).log(Level.SEVERE, null, ex);
el compilador(jCreator) no reconoce las palabras Logger ni level bueno les quite esas lineas y compilo pero al momento de ejecutarno muestra nada y se supone que deberia mostrar algun valor
bueno io he estado intentando guiarme de tu ejemplo... y elabora el mio pero no entiendo de donde sale la interfax serializable??? que significa eso no entiendo...
ia mira aca te mando el codigo que he estado haciendo:
--- Código: Text --- import java.io.*; public class prueba{ public static void main(String args[]){ try { FileOutputStream fich = new FileOutputStream("C:/prueb1.txt"); ObjectOutputStream obj = new ObjectOutputStream(fich); pokemon p=new pokemon(); p.ingresaDatos(); obj.writeObject(p); obj.close(); FileInputStream fichIn = new FileInputStream("C:/prueb1.txt"); ObjectInputStream objIn = new ObjectInputStream(fichIn); pokemon s = (pokemon)objIn.readObject(); s.muestraDatos(); objIn.close(); } catch (ClassNotFoundException ex) { }catch (IOException ex) { } } }
aqui otra clase de la que deseo guardar los objetos
--- Código: Text --- public class pokemon implements Serializable{ public String nomb; public pokemon() { } public void ingresaDatos(){ System.out.println("nombre: "); nomb=Leer.leerDato(); } public void muestraDatos(){ System.out.println("nombre: "+ nomb); }}
La clase Leer tiene los metodos que sirven para leer datos
--- Código: Text --- import java.io.*;public class Leer { public static String leerDato(){ String dato; try { BufferedReader teclado=new BufferedReader(new InputStreamReader(System.in)); dato=teclado.readLine().trim(); }catch(Exception e){ dato=" "; } return dato; } public static int aEntero(String cadena){ int dato; try{ dato=Integer.parseInt(cadena); }catch(Exception e){ dato=-1; } return dato; } public static long aEnteroLargo(String cadena){ long dato; try{ dato=Long.parseLong(cadena); }catch(Exception e){ dato=-1; } return dato; } public static double aReal(String cadena){ double dato; try{ dato=Double.parseDouble(cadena); }catch(Exception e){ dato=-1; } return dato; } public static void mostrar(String cadena){ System.out.println(cadena); } public static void mostrarSeguido(String cadena){ System.out.print(cadena); } }
Cuando ejecuto la clase Prueba solamente me pide el dato pero despues no muestra nada... nos e porque espero me respondas gracias por todo....
Navegación
[#] Página Siguiente
Ir a la versión completa