|
Indice | Temas Recientes | Quién Está en LÃnea | Lista de Usuarios | Mi Perfil | Búsqueda | Ayuda |
![]() |
mvnForum » Listar todos los foros » Foro: Curso PLJ » Tema: ejercicio10: problemas con el fichero |
Total de mensajes en este tema: 6 |
[Eliminar este Tema]
[Mover este Tema] [AÅadir a Mis Favoritos] [AÅadir un aviso a este tema] [Publicar nuevo tema] |
Autor |
|
![]() Extranjero
|
Tengo todo implementado y a la hora de pasarle el fichero como argumento peta y da una excepcion como q no encuentra el fichero, yo me he creado un fichero vacio fichero.txt, con este fichero se supone que ya debe hacer q funcione, pero no es asi. Bueno a ver si alguien puede explicarme como hay que crear el fichero con las figuras , o como se pasa el nombre del fichero en ek eclipse para que funcione. yo le paso como argumento : fichero.txt como ya he dicho antes. Bueno algo de ayudaaaaaaaaa!!! ![]() |
||
|
![]() Extranjero
|
A mi me sucede exactamente lo mismo ![]() |
||
|
![]() Miembro
|
Hola. A ver: al programa principal (AplicGeom) se le pasa como parámetro el nombre del fichero donde están las figuras, o donde estarán después cuando se guarde desde el programa. Es decir, el fichero NO TIENE POR QUE existir. Para eso tenemos el método "leeFiguras" en la clase io.IOFiguras. Basta con que le pasemos ese nombre de fichero al método, y él se encargará de leer lo que haya, si lo hay. Si no lo hay se lanzará la excepción "FileNotFoundException" que deberemos capturar dentro de leeFiguras. De forma que leeFiguras devolverá el array de figuras que haya leÃdo, si ha encontrado el fichero, o null si no lo ha encontrado, o no habÃa figuras: --------------------------------------------------------------- public static Figura[] leeFiguras(String fichero) { ArrayList alAux = new ArrayList(); try { Figura f; ObjectInputStream oin = new ObjectInputStream (new FileInputStream(fichero)); while (true) { f = (Figura)(oin.readObject()); alAux.add(f); } oin.close(); } catch (Exception e) {} if (alAux.size() == 0) return null; else return((Figura[])(alAux.toArray(new Figura[0]))); } --------------------------------------------------------------- De esta forma, inicializamos un ArrayList auxiliar antes de empezar a leer. Si durante la lectura de fichero se produce alguna excepción (porque no encuentra el fichero, o mientras lee de fichero después), se termina el proceso de lectura. Si hemos leÃdo elementos, estos estarán en el ArrayList, y los devolvemos en forma de array. Si no hemos leÃdo elementos, el ArrayList estará vacÃo, y devolvemos null. Observad que asà no tenemos que preocuparnos de si existe o no fichero. Si no existe lanzará una FileNotFoundException, con lo que el ArrayList tendrá tamaño 0 y devolveremos null en el método. Si existe, leerá los elementos que haya, hasta llegar a final de fichero. En ese momento lanzará una IOException porque no puede leer más, y tendremos todos nuestros elementos metidos en la lista. |
||
|
![]() Extranjero
|
Buenas, eso que has contestado lo he probado y al menos a mi me da un error de compilacion cuando hago oin.close(), me dice unreachable code ... ![]() |
||
|
![]() Extranjero
|
buff... no tengo ni idea pero repásatelo porque te esta diciendo que ese código es inalcanzable: nunca podrá llegar a ejecutarse. Yo aún no lo he acabado y no sé a que puede deberse el error... Quizá a la ruta del fichero ¿? Repásalo todo a ver si abres bien el fichero y mira a ver por qué te dice que no alcanzará ese trozo de código. Siento no poder servirte de más ayuda. Por lo que veo estamos todos aquà a última hora dándole a las figuras. ![]() |
||
|
![]() Miembro
|
Hola. Puedes poner el código de ese método para ver por qué te da lo de "unreachable code"? A ver si asà solucionamos el problema ![]() |
||
|
[Versión imprimible] [Publicar nuevo tema] |