Ayuda con lectura y escritura en ficheros Java

Iniciado por LuisCardenas123, 2 Mayo 2019, 15:33 PM

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

LuisCardenas123

Buenas me encuentro haciendo una práctica y no logro hacerlo bien, el enunciado es este:
Crea una clase, llamada ​RelPerCen​, para implementar los métodos necesarios para gestionar el fichero de texto:
a. Un método de clase, llamado ​leer(String nombre)​, que permita leer el contenido del archivo y devolver una lista con todos los empleados que hay en el fichero. Este método recibe el nombre del archivo como un String. Si el campo fecha de cese se encuentra vacío en el fichero, se establecerá como fecha de cese del empleado la menor fecha representable por la clase LocalDate, en este caso, se usará la constante ​LocalDate.MIN correspondiente al valor -999999999-01-01​.
b. Un método de clase, llamado ​escribir(Lista empleado, String nombreFichero)​, que escriba el contenido de la lista que se pasa como parámetro en un fichero ubicado en la raíz del proyecto con el nombre que se pasa como parámetro. El formato de escritura en el fichero será un empleado por línea y los campos separados por tabuladores.

Pues bien la cosa es queme dan errores y no sé a qué es debido, si alguien pudiera echarme un cable a completarla se lo agradecer

rub'n

#1


rubn0x52.com KNOWLEDGE  SHOULD BE FREE!!!
If you don't have time to read, you don't have the time (or the tools) to write, Simple as that. Stephen

LuisCardenas123

Si, pero no es lo mismo, el codigo que tengo yo hecho es el siguiente pero no consigo hacer bien la practica:


public static ArrayList<Empleado> leerFichero(String archivo) throws FileNotFoundException, IOException {

        ArrayList<Empleado> lista = new ArrayList<>();

   
        FileReader fr = new FileReader(archivo);
       
        BufferedReader br = new BufferedReader(fr);

        String[] tokens;
        String linea;
       
        while ((linea = br.readLine()) != null) {
           
            tokens = linea.split("\t");
            if(!tokens[4].equalsIgnoreCase(null)){
               lista.add(new Empleado(tokens[0], tokens[1], tokens[2], tokens[3], tokens[4], tokens[5], tokens[6]));
            } else {
               
            }
           
           
        }
       
        return lista;
    }
   

    public static void escribir(ArrayList<Empleado> aux, String nombreFichero) {
        nombreFichero = "escrito.txt";
        try (BufferedWriter flujo = new BufferedWriter(new FileWriter(nombreFichero))) {
           
            for (int i = 0; i < aux.size(); i++) {
                flujo.write(aux.get(i)+"\t");
            }
            flujo.newLine();
            flujo.flush();
           
        } catch (IOException e) {
            System.out.println(e.getMessage());
        }       
    }

rub'n

Te mostraron como seria el fichero .txt que esta leyendo? como lo escribieron?


rubn0x52.com KNOWLEDGE  SHOULD BE FREE!!!
If you don't have time to read, you don't have the time (or the tools) to write, Simple as that. Stephen

LuisCardenas123


rub'n

Cita de: LuisCardenas123 en  2 Mayo 2019, 16:21 PM
Si, el fichero tenía el siguiente contenido:

https://imgur.com/BEi5fTO

perfecto bien, no hay otra manera de tenerlo que no sea imagen? no puedes postearlo aqui?


rubn0x52.com KNOWLEDGE  SHOULD BE FREE!!!
If you don't have time to read, you don't have the time (or the tools) to write, Simple as that. Stephen

LuisCardenas123

Si , lo que pasa que se ve mal al pegarlo aquí entonces el aspecto que tiene es el de la imagen, aqui esta el contenido del fichero:



Título: PERSONAL DEL CENTRO
Autor: Aplicación Séneca, CONSEJERÍA DE EDUCACIÓN Y DEPORTE, Junta de Andalucía
Fecha de creación: 30/04/19 - 10:01


---------------------------------------+----------------------------------------+-------------------------+-------------+---------+-----------
Empleado/a                             |Puesto                                  |Fecha de toma de posesión|Fecha de cese|Evaluador|Coordinador
---------------------------------------+----------------------------------------+-------------------------+-------------+---------+-----------
Aldridge Torres, Pérez                 |Física y Química P.E.S.                 |01/09/2012               |             |Sí       |No         
Álvarez Ortega, María Dolores          |Pedagogía Terapeutica Eso               |01/09/2005               |             |No       |No         
Baquero Reyes, Cristina                |Biología y Geología P.E.S.              |18/02/2019               |30/04/2019   |No       |No         
Bermúdez Iñiguez, José Luis            |Geografía e Historia P.E.S.             |01/09/2018               |30/06/2019   |No       |No               
Beswick Algarrada, Cristina            |Orientación Educativa P.E.S.            |01/09/2008               |             |No       |No         
Blanco Borrego, Mirian                 |Física y Química P.E.S.                 |01/09/2004               |             |No       |Sí         
Borrego Alcaide, Miguel Ángel          |Lengua Castellana y Literatura P.E.S.   |01/09/2018               |30/06/2019   |No       |No         
Butrón Cobo, Lucía                     |Administración de Empresas P.E.S.       |25/09/2018               |09/03/2019   |No       |No         
Caballero Suárez, Natalia              |Matemáticas P.E.S.                      |01/09/2004               |             |No       |No         
Calero Delgado, Sandra                 |Matemáticas P.E.S.                      |26/10/2018               |24/12/2018   |No       |No         
Calvo López, María Lourdes             |Geografía e Historia P.E.S.             |01/09/2016               |             |No       |No         
Camacho Marín, Álvaro                  |Biología y Geología P.E.S.              |01/09/2005               |             |No       |No         
Camus Sánchez, Rocío                   |Lengua Castellana y Literatura P.E.S.   |01/09/2018               |30/06/2019   |No       |No         
Castillero Julia, Inmaculada           |Educación Física P.E.S.                 |01/09/2010               |             |No       |No         
Castillo Aguilar, Inmaculada Concepción|Lengua Castellana y Literatura P.E.S.   |01/09/2018               |30/06/2019   |No       |No                 
Cerpa Parreño, Carmen                  |Inglés P.E.S.                           |01/09/2016               |             |No       |No         
Cintado Varona, Carmen Alejandra       |Matemáticas P.E.S.                      |15/09/1996               |             |No       |No         
Concepción Santos, Reyes               |Inglés P.E.S.                           |01/09/2008               |             |No       |No         
Contreras Serrano, Dakota              |Tecnología P.E.S.                       |01/09/2018               |30/06/2019   |Sí       |No         
Cortés Martín, Antonio                 |Inglés P.E.S.                           |14/01/2019               |30/04/2019   |No       |No         
Cuadra Ruíz, Francisco                 |Economía P.E.S.                         |04/02/2019               |30/06/2019   |No       |No         
Del Sol Tenllado, Cristina             |Educación Física P.E.S.                 |01/09/2018               |31/08/2019   |No       |No         
Delgado Benítez, Almudena              |Inglés P.E.S.                           |01/09/2009               |             |No       |No                 
Delgado Carrasco, María Isabel         |Francés P.E.S.                          |01/09/2018               |31/08/2019   |No       |No               
Díaz Bernal, Isabel María              |Lengua Castellana y Literatura P.E.S.   |01/09/2018               |31/08/2019   |No       |No           
Díaz González, María Auxiliadora       |Inglés P.E.S.                           |01/09/2003               |             |No       |No         
Díaz Jiménez, Ulises                   |Administración de Empresas P.E.S.       |01/10/1991               |             |No       |No         
Dorado Begines, María Mercedes         |Lengua Castellana y Literatura P.E.S.   |12/11/2018               |30/04/2019   |No       |No         
Espejo Pérez, Marina                   |Dibujo P.E.S.                           |01/09/2018               |31/08/2019   |No       |No         
Estrella Alonso, María Trinidad        |Matemáticas P.E.S.                      |01/09/2018               |30/06/2019   |No       |No         
Fernández Bermejo, Manuel Jesús        |Inglés P.E.S.                           |01/09/2014               |             |Sí       |No         
Fernández Selva, Cristina              |Administración de Empresas P.E.S.       |01/09/2018               |30/06/2019   |No       |No         
Fernández Silveria, Mari Ángeles       |Música P.E.S.                           |01/09/2001               |             |Sí       |No         
García Espinosa, David                 |Informática P.E.S.                      |01/09/2018               |30/06/2019   |No       |No         
García Grau, Consuelo                  |Proc. Gestión Administrativa P.T.F.P.   |01/10/1990               |             |No       |No         
García Martos, María del Carmen        |Tecnología P.E.S.                       |18/02/2019               |30/04/2019   |No       |No         
García Mena, Mercedes                  |Matemáticas P.E.S.                      |01/09/2018               |30/06/2019   |No       |No         
García Urbano, Marina                  |Filosofía P.E.S.                        |01/09/2018               |30/06/2019   |Sí       |No         
Garrido Chicón, Katia                  |Biología y Geología P.E.S.              |01/09/2012               |             |No       |No         
Giner Pozo, Carmen                     |Inglés P.E.S.                           |01/09/2018               |30/06/2019   |No       |No         
Girón Plata, José                      |Inglés P.E.S.                           |01/09/2018               |30/06/2019   |Sí       |No         
Gómez Jurado, Noelia                   |Tecnología P.E.S.                       |01/09/2018               |31/08/2019   |No       |No         
González Calvo, Francisco              |Francés P.E.S.                          |01/09/2009               |             |Sí       |Sí         
González Escobar, Rocío                |Biología y Geología P.E.S.              |01/09/2018               |30/06/2019   |No       |No         
González García, Mireia                |Informática P.E.S.                      |01/09/2013               |             |No       |No           
González Lobato, Laura                 |Matemáticas P.E.S.                      |01/09/2018               |31/08/2019   |No       |No         
Hilton Jimènez, María del Carmen       |Física y Química P.E.S.                 |01/09/2018               |31/08/2019   |Sí       |No         
Hinojal Rodríguez, Ana Isabel          |Administración de Empresas P.E.S.       |01/10/1992               |             |No       |No         
Igorra Alpresa, Alberto                |Tecnología P.E.S.                       |01/09/2012               |             |Sí       |No         
Jiménez Manzo, Michelle Andrea         |Economía P.E.S.                         |15/09/1997               |             |No       |No         
Jódar García, Marta                    |Proc. Gestión Administrativa P.T.F.P.   |01/10/1987               |             |No       |No         
Lara Guardia, María Matilde            |Matemáticas P.E.S.                      |01/10/1992               |             |No       |No         
Lloret Vázquez, María                  |Economía P.E.S.                         |04/02/2019               |22/03/2019   |No       |No         
López Garrido, Marta                   |Inglés P.E.S.                           |01/09/2017               |             |No       |No         
López Gómez, James                     |Lengua Castellana y Literatura P.E.S.   |01/09/2006               |             |Sí       |Sí         
López Iglesias, Cristina María         |Francés P.E.S.                          |15/11/2018               |21/12/2018   |No       |No         
López Valverde, Juan                   |Geografía e Historia P.E.S.             |17/09/2018               |30/06/2019   |No       |No         
Loring Domínguez, Francisco            |Lengua Castellana y Literatura P.E.S.   |01/09/2018               |30/06/2019   |No       |No         
Macías Recio, Eva María                |Laboral Religión (Sec-Ere) Jor.Completa |01/09/2018               |31/08/2019   |No       |No         
Maeso Padilla, Belinda                 |Educación Física P.E.S.                 |01/09/2010               |             |No       |No         
Manzano Núñez, Jorge                   |Equipos Electrónicos P.T.F.P.           |01/09/2004               |             |No       |No         
Márquez Flores, Manuel                 |Administración de Empresas P.E.S.       |04/02/2019               |30/06/2019   |No       |No         
Melero Granado, Marina                 |Geografía e Historia P.E.S.             |01/09/2018               |31/08/2019   |No       |No         
Mendoza Aguilera, Laura María          |Educación Física P.E.S.                 |15/10/2018               |05/11/2018   |No       |No         
Mercado Domínguez, Sergio              |Dibujo P.E.S.                           |01/09/2003               |             |Sí       |No           
Millán Troncoso, Fernando              |Administración de Empresas P.E.S.       |01/10/1992               |             |No       |No         
Molina Barragán, María Ángeles         |Lengua Castellana y Literatura P.E.S.   |01/09/2018               |31/08/2019   |No       |No         
Montes Borrallo, Patricia              |Geografía e Historia P.E.S.             |01/09/2018               |30/06/2019   |No       |No         
Mora Sánchez, Leticia                  |Matemáticas P.E.S.                      |01/09/2018               |30/06/2019   |No       |No         
Moreno Fernández, Cynthia              |Geografía e Historia P.E.S.             |01/09/2018               |31/08/2019   |No       |No         
Muñoz Sánchez, Vanessa                 |Informática P.E.S.                      |01/09/2018               |31/08/2019   |No       |No         
Navas Peters, María Antonia            |Lengua Castellana y Literatura P.E.S.   |01/09/2017               |             |No       |No         
Nieto Navarro, Raquel                  |Matemáticas P.E.S.                      |01/09/2018               |31/08/2019   |No       |No         
Nieto Olmedo, Pablo                    |Geografía e Historia P.E.S.             |01/09/2018               |             |No       |No         
Oncala Roldán, María Jesús             |Informática P.E.S.                      |01/09/2010               |             |No       |No         
Ortega Castro, Ángela                  |Física y Química P.E.S.                 |01/09/2018               |31/08/2019   |No       |No         
Pascual Cárdenas, Silvia               |Informática P.E.S.                      |22/06/2009               |             |No       |No           
Pérez García, Carlos Antonio           |Cultura Clásica P.E.S.                  |01/09/2018               |30/06/2019   |No       |No         
Pérez González, Javier                 |Matemáticas P.E.S.                      |01/09/2011               |             |No       |No         
Pérez Moreno, Angélica                 |Lengua Castellana y Literatura P.E.S.   |01/09/2010               |             |No       |No         
Polo González, Antonio                 |Francés P.E.S.                          |01/09/2018               |30/06/2019   |Sí       |No         
Ponce Farias, Ana Isabel               |Inglés P.E.S.                           |12/11/2018               |21/12/2018   |No       |No         
Quintero Guerrero, Antonio             |Proc. Gestión Administrativa P.T.F.P.   |01/09/2018               |30/06/2019   |No       |No         
Racionero Oriola, José                 |Contr. Lab. Religión (Sec-Ere) 12 Horas |01/09/2018               |31/08/2019   |No       |No         
Ramos Parra, Soraya                    |Equipos Electrónicos P.T.F.P.           |01/10/1989               |             |No       |No         
Regal Díaz, Álvaro                     |Sistemas y Aplic. Informáticos P.T.F.P. |01/09/2012               |             |Sí       |Sí         
Richarte Urbano, María Isabel          |Inglés P.E.S.                           |01/09/2012               |             |No       |No             
Robles García, Álvaro                  |Lengua Castellana y Literatura P.E.S.   |01/09/2018               |30/06/2019   |No       |No         
Rodríguez Moreno, David                |Geografía e Historia P.E.S.             |01/09/2018               |30/06/2019   |No       |No         
Rodríguez Moreno, Juan Pablo           |Francés P.E.S.                          |01/09/2018               |30/06/2019   |No       |No         
Rodríguez Muñoz, Oscar Manuel          |Orientación Educativa P.E.S.            |01/09/2012               |             |No       |No         
Rubio Romero, Mercedes                 |Administración de Empresas P.E.S.       |01/10/1992               |             |No       |No           
Ruiz Cantuche, Carmen Alba             |Matemáticas P.E.S.                      |01/09/2018               |30/06/2019   |No       |No         
Ruiz Quero, Lorena de los Milagros     |Música P.E.S.                           |01/09/2004               |             |No       |No         
San Eufrasio Sánchez, Miguel Ángel     |Informática P.E.S.                      |01/09/2013               |             |No       |No         
Santana García, David Robert           |Filosofía P.E.S.                        |01/09/2014               |             |Sí       |No         
Santolaya Muñoz, Sandra                |Física y Química P.E.S.                 |01/10/1989               |             |Sí       |Sí         
Sierra Chaparro, Carmen                |Filosofía P.E.S.                        |01/09/2012               |             |No       |No         
Soto Rubio, Alfonsa                    |Audición y Lenguaje Eso. (Signos)       |25/09/2018               |30/06/2019   |No       |No         
Suárez Marrero, Francisco de Paula     |Economía P.E.S.                         |01/09/2018               |31/08/2019   |No       |No         
Torrente Macías, Cristina Victoria     |Sistemas Electrónicos P.E.S.            |01/09/2003               |             |Sí       |No         
Torres García, Lidia                   |Inglés P.E.S.                           |01/09/2016               |             |No       |No         
Valencia Jiménez, Pablo                |Contr. Lab.Evangelic. (Sec-Ere) 05 Horas|01/09/2018               |31/08/2019   |No       |No         
Valero Díaz, Esther                    |Matemáticas P.E.S.                      |01/09/2010               |             |Sí       |Sí         
Valiente Lanzat, Aida                  |Inglés P.E.S.                           |01/09/2018               |30/06/2019   |No       |No         
Vázquez García, Aarón                  |Inglés P.E.S.                           |04/12/2018               |30/01/2019   |No       |No         
Vizcaíno Ramírez, Seila María          |Tecnología P.E.S.                       |17/09/2018               |30/06/2019   |No       |No         

rub'n

#7
Por ahí va la cosa y cuando lo pongas, usa GeShi en modo bash  ;D

Código (java) [Seleccionar]

package com.ficheros.foro;

import javax.swing.*;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.nio.charset.Charset;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.time.LocalDate;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import java.util.logging.Logger;

/**
* autor @rub´n
* https://foro.elhacker.net/java/ayuda_con_lectura_y_escritura_en_ficheros_java-t495247.0.html
*/
public class RelPerCen {

   private static final Logger LOGGER = Logger.getLogger(RelPerCen.class.getSimpleName());
   private static final String MATCHES = "|             |";
   private static final String REEMPLAZO = "|" + LocalDate.MIN.toString() + "|";
    private static final String REPLACE = "[\\]\\[]";

   public static List<String> leerFichero(final String nombre) {
       final List<String> list = new ArrayList<>();
       LOGGER.info("Raiz de proyecto" + Paths.get(".").toAbsolutePath().toString());
       try (final BufferedReader br = Files.newBufferedReader(Paths.get(nombre), Charset.defaultCharset())) {
           LOGGER.info("Leyendo el fichero de empleados\n");
           String line = "";
           final StringBuilder sb = new StringBuilder();
           while (Objects.nonNull(line = br.readLine())) {
              if (!line.contains(MATCHES)) {
                   final String s = line.replace(MATCHES, REEMPLAZO);
                   sb.append(s)
                           .append(System.lineSeparator());
               }
               if (line.contains(MATCHES)) {
                   final String s = line.replace(MATCHES, REEMPLAZO);
                   sb.append(s)
                           .append(System.lineSeparator());
               }
           }
           /**
            * Despues del while
            */
           list.add(sb.toString());
       } catch (IOException ex) {
           JOptionPane.showMessageDialog(null, "No existe el fichero");
           LOGGER.severe("No existe el fichero " + ex.toString());
       }
       return list;
   }

   public static void escribir(final List<String> empleado, final String nombreFichero) {
       try (final BufferedWriter bw = Files.newBufferedWriter(Paths.get(nombreFichero))) {

           bw.write(empleado.toString()
                   .replaceAll(REPLACE, ""));

       } catch (IOException ex) {
           LOGGER.severe("Error al escribir fichero " + ex.toString());
       }
   }

   public static void main(String... blablablablabla) {
       final RelPerCen r = new RelPerCen();
       /**
        * Leer el fichero completamente
        */
       final List<String> ficheroLiedo = r.leerFichero("ficheroEmpleados.txt");
       /**
        * Crear el fichero con las fechas de cese en LocalDate.MIN
        */
       r.escribir(ficheroLiedo, "ficheroEmpleadosConFechaDeCese.txt");
   }
}




Salida actual, falta formateo

Código (bash) [Seleccionar]
Título: PERSONAL DEL CENTRO
Autor: Aplicación Séneca, CONSEJERÍA DE EDUCACIÓN Y DEPORTE, Junta de Andalucía
Fecha de creación: 30/04/19 - 10:01


---------------------------------------+----------------------------------------+-------------------------+-------------+---------+-----------
Empleado/a                             |Puesto                                  |Fecha de toma de posesión|Fecha de cese|Evaluador|Coordinador
---------------------------------------+----------------------------------------+-------------------------+-------------+---------+-----------
Aldridge Torres, Pérez                 |Física y Química P.E.S.                 |01/09/2012               |-999999999-01-01|Sí       |No
Álvarez Ortega, María Dolores          |Pedagogía Terapeutica Eso               |01/09/2005               |-999999999-01-01|No       |No
Baquero Reyes, Cristina                |Biología y Geología P.E.S.              |18/02/2019               |30/04/2019   |No       |No
Bermúdez Iñiguez, José Luis            |Geografía e Historia P.E.S.             |01/09/2018               |30/06/2019   |No       |No
Beswick Algarrada, Cristina            |Orientación Educativa P.E.S.            |01/09/2008               |-999999999-01-01|No       |No
Blanco Borrego, Mirian                 |Física y Química P.E.S.                 |01/09/2004               |-999999999-01-01|No       |Sí
Borrego Alcaide, Miguel Ángel          |Lengua Castellana y Literatura P.E.S.   |01/09/2018               |30/06/2019   |No       |No
Butrón Cobo, Lucía                     |Administración de Empresas P.E.S.       |25/09/2018               |09/03/2019   |No       |No


rubn0x52.com KNOWLEDGE  SHOULD BE FREE!!!
If you don't have time to read, you don't have the time (or the tools) to write, Simple as that. Stephen