Escribir y leer de un fichero con objetos.

Iniciado por Fryuio, 22 Abril 2017, 12:49 PM

0 Miembros y 1 Visitante están viendo este tema.

Fryuio

Cita de: 3n31ch en 22 Abril 2017, 15:15 PM
@_@...

Ya no entiendo tu pregunta.

Basicamente quieres que te explique cada detalle del algoritmo?. Lo que puse ahi fue un ejemplo para escribir en un fichero un simple String (Luego tu lo modificas y aplicas para lo que necesites).



A ver la pregunta en sus inicios quizá estaba mal enfocada, la duda es como meto en un fichero un array de un objeto que tiene 2 parametros. Sí, uno a uno se hacerlo, pero no es óptimo. Yo nada más quería una orientación de como hacerlo de manera óptima. Gracias por todo y un saludo.

3n31ch

Entiendo que quieres esto:

Código (java) [Seleccionar]

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;

public class Persona implements java.io.Serializable  {
private int edad;
private String nombre;
public Persona(String nombre, int edad) {
this.edad = edad;
this.nombre = nombre;
}

public String toString() {
return nombre+" "+edad;
}

public static void main(String[] args) throws IOException, ClassNotFoundException {

Persona[] personas = new Persona[]{
new Persona("A", 1),
new Persona("B", 2),
new Persona("C", 3),
new Persona("D", 4),
};
FileOutputStream out = new FileOutputStream("/home/eneich/texto.txt");
        ObjectOutputStream oout = new ObjectOutputStream(out);
        oout.writeObject(personas);
        oout.close();
       
        FileInputStream fin = new FileInputStream("/home/eneich/texto.txt");
        ObjectInputStream ois = new ObjectInputStream(fin);
        Persona[] personas2 = (Persona[]) ois.readObject();
        for(Persona persona : personas2) System.out.println(persona);
       
}

}

Fryuio

Cita de: 3n31ch en 22 Abril 2017, 15:39 PM
Entiendo que quieres esto:

Código (java) [Seleccionar]

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;

public class Persona implements java.io.Serializable  {
private int edad;
private String nombre;
public Persona(String nombre, int edad) {
this.edad = edad;
this.nombre = nombre;
}

public String toString() {
return nombre+" "+edad;
}

public static void main(String[] args) throws IOException, ClassNotFoundException {

Persona[] personas = new Persona[]{
new Persona("A", 1),
new Persona("B", 2),
new Persona("C", 3),
new Persona("D", 4),
};
FileOutputStream out = new FileOutputStream("/home/eneich/texto.txt");
        ObjectOutputStream oout = new ObjectOutputStream(out);
        oout.writeObject(personas);
        oout.close();
       
        FileInputStream fin = new FileInputStream("/home/eneich/texto.txt");
        ObjectInputStream ois = new ObjectInputStream(fin);
        Persona[] personas2 = (Persona[]) ois.readObject();
        for(Persona persona : personas2) System.out.println(persona);
       
}

}


Si algo así, muchas gracias!!! ;-) ;-)

3n31ch

Oye.. no quiero ser molesto...

Pero te explicaste fatal!  :xD :xD

Fryuio

Cita de: 3n31ch en 22 Abril 2017, 15:48 PM
Oye.. no quiero ser molesto...

Pero te explicaste fatal!  :xD :xD

Lo sé, muchas gracias por la paciencia y por la ayuda  ;-). Un saludo.