Foro de elhacker.net

Programación => Ejercicios => Mensaje iniciado por: ayoub20600 en 19 Mayo 2018, 01:49 am



Título: ¿Como seleccionar contenido concreto de un fichero y escribirlo en otro?
Publicado por: ayoub20600 en 19 Mayo 2018, 01:49 am
Tengo que leer un fichero y luego seleccionar contenido concreto y escribirlo en otro ficher. El fichero que hay que leerlo tiene varias líneas, y cada línea tiene este formato: "contenido1","contenido2","contenido3","contenido4","123" a mi, se me pide seleccionar el contenido 1,2,3 y el 5 que es numérico y escribirlo en un fichero. He implementado el bufferedread y write pero no sé como seleccionar el contenido y escribirlo.
 He conseguido hacer funcionar el mío a medias porque me escribe en el fichero el contenido deseado, pero en la siguiente línea, me vuelve a escribir toda la línea sin el split. Si quito la línea bw.write(s); no me escribe nada en el fichero, y si la devuelvo, vuelvo al mismo problema.
Os dejo el enunciado de mi ejercicio:
Realiza un programa en Java que lea el contenido del fichero: Países del mundo y lo guarde en memoria en una lista en el mismo orden en que se encuentra en el fichero original. Solo ha de guardar el nombre del país en castellano (el primer campo), el nombre del país en inglés (el segundo campo) y el prefijo telefónico (el último campo).

A continuación ha de permitir al usuario realizar consultas a partir del nombre de un país y mostrar por pantalla el prefijo del mismo. Se pueden realizar tantas consultas como se desee.

Al finalizar la ejecución del programa, éste ha de escribir en un fichero de log (log_consultas.txt) el nombre de los países que se han consultado con su correspondiente prefijo telefónico. Los registros de éste fichero han de coincidir en el mismo orden en que se han realizado las consultas.

Para cada ejecución del programa, se ha de crear siempre de nuevo el fichero log_consultas, perdiendo toda información que éste contenía en su ejecución anterior.

Os dejo el código:


public class leer {
    public void read(){
     File f = new File("C:\\archivoTXT\\paises_del_mundo.txt");
     //int x = 105;
     try{
     FileReader fr = new FileReader(f);
     BufferedReader br = new BufferedReader(fr);
     BufferedWriter bw = new BufferedWriter(new FileWriter("C:\\archivoTXT\\coco.txt"));
     String s;
     do{
     s = br.readLine();
     String[] parts = s.split(",");

            String part1 = parts[0];
            String part2 = parts[1];
            String part6 = parts[5];
            
             bw.write(parts[0]);
             bw.write(parts[1]);            
             bw.write(parts[5]);
            
             bw.newLine();
             /*
             if(s.isEmpty() || s == null){
            
            bw.close();
            
            }*/
            
     bw.write(s);
     System.out.println(s);
     }while(s!=null);
     bw.close();
    
     }catch(IOException e){
        System.out.println("Archivo no encontrado");
     }
    
}
}