Java - Eliminar una linea en especifico de un archivo en java

 
Vista:

Eliminar una linea en especifico de un archivo en java

Publicado por Daniela Fajardo (1 intervención) el 15/07/2017 00:00:15
Este es mi clase para eliminar un registro del archivo (ejem: 1234,Pedro Picapiedra,7436.43,true)...sin embargo, no puedo pasar los registros del archivo (separados por comas) dentro de un arreglo para anular el dato que el usuario me pida pasandolo a un arreglo y reescribiendo el archivo .txt.

Agradezco su ayuda de antemano.

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
package examen;
 
import java.io.*;
import java.util.logging.Level;
import java.util.logging.Logger;
 
/**
 *
 * @author Omar
 */
public class eliminar {
   public void leer(String n_archivo){
   FileReader r = null;
       try {
           r = new FileReader (n_archivo);
           BufferedReader buffer = new BufferedReader(r);
           String temp ="" ;
           while (temp != null){
 
               try {
                   temp= buffer.readLine();
               } catch (IOException ex) {
                   Logger.getLogger(eliminar.class.getName()).log(Level.SEVERE, null, ex);
               }
                   String x;
                   x=temp;
                   String [] arreglo_eliminar = x.split(",");
                   for (int i =0; i<arreglo_eliminar.length;i++){
                       System.out.println(arreglo_eliminar[i]);
 
                   }
 
      }
 
       } catch (FileNotFoundException ex) {
           Logger.getLogger(eliminar.class.getName()).log(Level.SEVERE, null, ex);
       } finally {
           try {
               r.close();
           } catch (IOException ex) {
               Logger.getLogger(eliminar.class.getName()).log(Level.SEVERE, null, ex);
           }
       }
 
 
   }
 
}
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
Imágen de perfil de Sebastian
Val: 282
Ha disminuido 1 puesto en Java (en relación al último mes)
Gráfica de Java

Eliminar una linea en especifico de un archivo en java

Publicado por Sebastian (91 intervenciones) el 15/07/2017 04:44:24
Hola!!
para sacar los datos del archivo podrías guardarlos en un ArrayList<Objeto> y luego buscar el objeto que vas a eliminar de la ArrayList y luego guardas los objetos en el archivo.

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
//clase objeto
public class Person{
          //variables que pertenecen a ese objeto
          private String id;
          private String name;
          private String phone;
                  .
                  .
                  .
          //constructor que asigna las variables que pertenecen a ese objeto
         public Person(String id, String name, String phone ......){
                  this.id=id;
                  this.name=name;
                  this.phone=phone;
         }
}
//la clase que tienes para leer el archivo
public class DeletePerson{
          //instancias el ArrayList del tipo objeto 
         private ArrayList<Person> persons;
 
         //constructor donde creas el ArrayList
         public DeletePerson(){
                persons = new ArrayList<>();
        }
        //metodo en el que estas leyendo el archivo
        public void read(String file){
                  .
                  .
                  .
                  .
                  .
                  .
                  String x;
                  x=temp;
                  //separas el texto por variables del tipo objeto
                  String [] arreglo_eliminar = x.split(",");
                  //asignas al ArrayList el objeto con las variables del archivo
                  persons.add( new Person (arreglo_eliminar[0], arreglo_eliminar[1], arreglo_eliminar[2], arreglo_eliminar[3],......... ) );
                  .
                  .
                  .
                  .
                  .
        }
}

Espero que te de una idea
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