Java - Por favor! Ayuda para terminar ejercicio

 
Vista:

Por favor! Ayuda para terminar ejercicio

Publicado por Israel (3 intervenciones) el 18/11/2013 14:09:36
Estoy en el tema 2 del curso de java y tengo que hacer un ejercicio:

Modifique la clase EstanteriaMultimedia haga las siguientes acciones:
 Crea un objeto de la clase EscrituraLecturaDeObjetosMultimedia.
 Guarda los objetos creados en el estanteria.dat llamando al método escrituraObjetos de la clase EscrituraLecturaDeObjetosMultimedia.
 Lee los objetos creados en el estanteria.dat llamando al método lecturaObjetos de la clase EscrituraLecturaDeObjetosMultimedia.
 Imprime los objetos recuperados en un ArrayList con la interfaz de soporte Iterator.

Esta es la clase EscrituraLecturaDeObjetosMultimedia:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
package Multimedia;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.util.*;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
public class EscrituraLecturaDeObjetosMultimedia {
//Variables
private Object EscrituraLecturaDeObjetosMultimedia;
private ObjectOutputStream escritura;
private ObjectInputStream lectura;
private FileOutputStream fileOutPutStream;
private FileInputStream fileInPutStream;
 
 
//Constructores
public EscrituraLecturaDeObjetosMultimedia(String objeto){
this.EscrituraLecturaDeObjetosMultimedia = objeto ;
}
 
//Metodos
public void escrituraObjetos(EstanteriaMultimedia estanteriaMultimedia) throws IOException {
fileOutPutStream = new FileOutputStream("estanteria.dat");
escritura = new ObjectOutputStream(fileOutPutStream);
 
for (int i = 0; i < estanteriaMultimedia.size(); i++) {
escritura.writeObject(estanteriaMultimedia.get(i));
}
escritura.close();
 
}
 
public ArrayList lecturaObjetos(int numObjetos)throws Exception,FileNotFoundException,
IOException{
ArrayList listaObjetos = new ArrayList();
FileInputStream fileInputStream = new FileInputStream("estanteria.dat");
lectura = new ObjectInputStream(fileInputStream);
for(int i=0; i<numObjetos;i++){
listaObjetos.add(lectura.readObject());
}
    lectura.close();
    return listaObjetos;
}
public static void main(String[] args) {
//Variables
 
//Metodos
 
}
 
}

Y esta es la clase EstanteriaMultimedia:

package Multimedia;
public class EstanteriaMultimedia {

//Variables

private EstanteriaMultimedia[]listaMultimedia;
private int contador;


//Constructor
public EstanteriaMultimedia(int tamañoMaximo){
listaMultimedia = new EstanteriaMultimedia[tamañoMaximo];
contador = 0;
}

EstanteriaMultimedia(String algo, String algos, String assa, String algos_s) {
throw new UnsupportedOperationException("Not yet implemented");
}




//Metodos

public int size(){
return contador;
}
public boolean llena(){
return contador == listaMultimedia.length;
}
public boolean add(EstanteriaMultimedia multimedia){
if(llena()){
return false;
}else{
listaMultimedia[contador]=multimedia;
contador++;
return true;
}

}
public EstanteriaMultimedia get(int posicion){
if(posicion < 0 || posicion >= contador)
throw new IndexOutOfBoundsException();
return listaMultimedia[posicion];
}
public int indexOf(EstanteriaMultimedia multimedia){
for (int i=0; i<contador; i++){
if(multimedia.equals(listaMultimedia)){
return i;
}
}
return -1;
}
public String toString(){
String lista = "";
for(int i=0; i<contador; i++){
lista += listaMultimedia.toString()+"\n\n";
}
return lista;
}

}
si me podeis ayudar se me cumple el plazo y no me lo he podido estudiar bn por temas personales Gracias.
Un saludo
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
sin imagen de perfil

Por favor! Ayuda para terminar ejercicio

Publicado por Francisco Javier (17 intervenciones) el 19/11/2013 11:21:51
Buenos días
Modifique la clase EstanteriaMultimedia haga las siguientes acciones:
1.- Crea un objeto de la clase EscrituraLecturaDeObjetosMultimedia.
En la clase EstanteriaMultimedia tienes que importar la clase EscrituraLecturaDeObjetosMultimedia:
package Multimedia;
import EscrituraLecturaDeObjetosMultimedia

Luego debes declararlo en la declaración de variables, algo asi:
private EscrituraLecturaDeObjetosMultimedia escrituraLectura;

Y debes crear otro constructor para que te pille el archivo donde debes guardar los datos. Tambien debes modificar la clase EscrituraLectura.... para que reciba como parametro un archivo y no un objeto
//Constructor
public EstanteriaMultimedia(int tamañoMaximo, String archivo){
listaMultimedia = new EstanteriaMultimedia[tamañoMaximo];
escrituraLectura=new EscrituraLecturaDeObjetosMultimedia(archivo);
contador = 0;
}


2.- Guarda los objetos creados en el estanteria.dat llamando al método escrituraObjetos de la clase EscrituraLecturaDeObjetosMultimedia.
Lo tienes practicamente hecho

3.- Lee los objetos creados en el estanteria.dat llamando al método lecturaObjetos de la clase EscrituraLecturaDeObjetosMultimedia.
Lo tienes practicamente hecho

4.- Imprime los objetos recuperados en un ArrayList con la interfaz de soporte Iterator.
Esto fue lo mas complicado, te pongo el código y tu ves como adecuarlo al tuyo, esto se haria en la clase EstanteriaMultimedia

@Override
public String toString() {
String imprime = "";
for (int i = 0; i < contador; i++) {
imprime += listaMultimedia[i].toString() + "\n\n";
}
return imprime;
}

/**
* Clase interna que implementa la interfaz iterator para nuestra estructura.
*/
class EstanteriaMultimediaIterator implements Iterator {

private int indice = 0;
/**
* Método que implementa el declarado en la interfaz
* @return boolean true si hay un elemento
*/
@Override
public boolean hasNext() {
return indice < contador;
}

@Override
public Multimedia next() {
return listaMultimedia[indice++];
}

@Override
public void remove() {
listaMultimedia[indice] = null;
}
}

/**
* Método para acceder al iterador
*
* @return Iterator EstanteriaMultimediaIterator
*/
public Iterator iterator() {
return iterator;
}

Espero te sirva de ayuda
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

Por favor! Ayuda para terminar ejercicio

Publicado por Israel (3 intervenciones) el 27/11/2013 22:01:52
En primer lugar Muchas gracias Javier.

En segundo lugar, me podría poner en contacto contigo mediante alguna forma para terminar una cosilla? porfa mi correo esta visible.


Muchas gracias.

Un saludo.
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