Java - Guardar datos en un fichero binario distinto en Java

 
Vista:
sin imagen de perfil
Val: 11
Ha aumentado su posición en 4 puestos en Java (en relación al último mes)
Gráfica de Java

Guardar datos en un fichero binario distinto en Java

Publicado por Luis (8 intervenciones) el 09/05/2019 17:04:38
Hola, me encuentro haciendo este ejercicio y he conseguido hacer todo menos el ultimo punto (el que está subrayado), entender creo que lo entiendo pero no llego a ver como poder realizarlo, si alguien puede echarme una mano se lo agradeceria.

Gracias.

Crea la clase App, con los siguientes atributos: código único (int), nombre (String), descripción (String), tamaño en Kb (double) y número de descargas (int). Crea un constructor por defecto y otro parametrizado para la clase. Además, incluye getters, setters y el método toString(). En el método main() de una clase de prueba realiza lo siguiente:
-Crea diez aplicaciones con los datos que tú quieras, guárdalas en una lista y muéstralas por pantalla.
-Guarda los datos todas las App de la lista en un fichero de XML dentro del directorio “./appsxml”.
-Guarda los datos de cada App en un fichero binario distinto dentro del directorio “./appsbin”.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Guardar datos en un fichero binario distinto en Java

Publicado por Tom (1831 intervenciones) el 09/05/2019 17:15:59
Por cada App creas un nuevo ObjectOutputStream y usas writeObject. Lee el API.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 11
Ha aumentado su posición en 4 puestos en Java (en relación al último mes)
Gráfica de Java

Guardar datos en un fichero binario distinto en Java

Publicado por Luis (8 intervenciones) el 09/05/2019 17:27:12
Si, pero como recorro cada app, la duda que tengo es como sería la estructura mas o menos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Rodrigo
Val: 2.041
Plata
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Guardar datos en un fichero binario distinto en Java

Publicado por Rodrigo (623 intervenciones) el 09/05/2019 17:42:16
Sugiero que uses la misma manera que usaste para mostrar los datos al resolver el primer punto.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Kabuto
Val: 3.428
Oro
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Guardar datos en un fichero binario distinto en Java

Publicado por Kabuto (1381 intervenciones) el 09/05/2019 19:57:37
Es más fácil de lo que parece, de hecho básicamente es hacer lo que ha dicho Tom

Tus App se suponen que están en una lista (arrayList o lo que sea...)

Pues recorres la lista con un bucle

Por cada App de la lista creas un objeto de la clase ObjectOutputStream. Para crear este objeto tienes que pasarle por constructor un FileOutputStream con el nombre del fichero que quieres crear, el cuál será distinto para cada App.
Algo así:
1
ObjectOutputStream salida=new ObjectOutputStream(new FileOutputStream("./appsbin/App00.bin"));

Y por cada app, haces una acción de escritura en disco.
1
salida.writeObject(listaApps.get(i));

Puesto que estás dentro de un bucle, has de idear una forma de construir automáticamente un nombre distinto para cada fichero.
Puedes usar el indice del bucle:
1
2
3
4
5
for (int i = 0; i < listaApps.size(); i++) {
    ObjectOutputStream salida=new ObjectOutputStream(new FileOutputStream("./appsbin/App0" + i + ".bin"));
    salida.writeObject(listaApps.get(i));
    salida.close();
}

O también puedes usar el atributo "código", o el "nombre", de cada App:

1
2
3
4
5
for (int i = 0; i < listaApps.size(); i++) {
    ObjectOutputStream salida=new ObjectOutputStream(new FileOutputStream("./appsbin/App_" + listaApps.get(i).getCodigo + ".bin"));
    salida.writeObject(listaApps.get(i));
    salida.close();
}

Todas estas acciones el compilador te obligará a realizarla dentro de un try{} catch(){} para capturar posibles excepciones.

Por último, antes de hacer todo esto, seguramente tengas que implementar la interfaz Serializable a tu clase App.
Basta con añadir esto al principio tu clase App:

1
public class App implements Serializable
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 11
Ha aumentado su posición en 4 puestos en Java (en relación al último mes)
Gráfica de Java

Guardar datos en un fichero binario distinto en Java

Publicado por Luis (8 intervenciones) el 09/05/2019 21:56:47
Gracias de verdad
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar