Java - Ingresar cada párrafo de un .txt en un casillero diferente de un arreglo o de un ArrayList()

 
Vista:
Imágen de perfil de Cindy

Ingresar cada párrafo de un .txt en un casillero diferente de un arreglo o de un ArrayList()

Publicado por Cindy (8 intervenciones) el 24/06/2017 16:08:55
Hola!
He leído un archivo .txt con BufferedReader y he mostrado el mismo en pantalla. El texto dentro de un .txt contienen citas medicas por lo tanto si existen n citas medicas, entonces existen n párrafos de 4 lineas en el archivo .txt como muestro a continuación un ejemplo en el que en el .txt solo hay 2 citas medicas.

Especialidad: Dermatología
Doctor: Dr. Pedro Suárez
Fecha: Lunes 19 de Junio de 2017
Hora: 15:30-16:30

Especialidad: Neurología
Doctor: Dra.Luisa Ramírez
Fecha: Lunes 19 de Junio de 2017
Hora: 17:30-18:30

EL METODO CONSULTAR CITA PENDIENTE es quien lee el archivo y lo muestra en pantalla, había pensado que seria bueno que en este proceso se llenara un array, pero me vota error, así que he comentado las lineas de código que he anexado a este método para rellenar el array, ya que el error de excepción se hace presente con las lineas comentadas.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
public void ConsultarCitaPendiente(){
    String[] array=null;
    int n=0;
    try{
        FileReader f = new FileReader("/Users/cindybohorquezsantana/NetBeansProjects/JavaApplication4/src/javaapplication4/citas_medicas.txt");
        BufferedReader br = new BufferedReader(f);
        String linea=br.readLine();
 
        while(linea!=null){
            //array[n]=linea;   -----> linea comentada
            System.out.println(linea);
            linea=br.readLine();
            //n++; -----> linea comentada
 
        }
 
    }catch(Exception r){
        System.out.println("Error en el metodo consultatCitaPendiente");
    }
}
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
Val: 190
Ha disminuido su posición en 2 puestos en Java (en relación al último mes)
Gráfica de Java

Ingresar cada párrafo de un .txt en un casillero diferente de un arreglo o de un ArrayList()

Publicado por preguntas (70 intervenciones) el 24/06/2017 18:39:19
Por lo que muestra tu codigo, el error es este:
1
2
3
4
5
6
7
String[] array=null;
 
.
.
.
 
array[n] = linea;


lo que falta:
1
array = new String[2];


Por lo que esto debe quedar de la siguiente manera;

1
String[] array = new String[2];

ahora ya puedes almacenar datos en el arreglo.
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
sin imagen de perfil

Ingresar cada párrafo de un .txt en un casillero diferente de un arreglo o de un ArrayList()

Publicado por Juan Francisco (58 intervenciones) el 25/06/2017 13:26:35
Cuantas lineas tiene tu archivo , por que el readLine() lee hasta el salto de linea ,hasta que devuelve un null,o cuentas primero y sabes cuantas lineas y despues con el contador inicializas el arreglo ,y con otro BufferRead lo vuelves a leer, o utilizar un Arraylist que es dinamico y lo vas añadiendo a tu arrayList con el
ArrayList<String> miarraylis =new Arraylist<>();


//dentro del bucle
miarraylis.add(linea);
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
Imágen de perfil de Cindy

Ingresar cada párrafo de un .txt en un casillero diferente de un arreglo o de un ArrayList()

Publicado por Cindy (8 intervenciones) el 29/06/2017 17:52:11
Ese es otro gran problema, puesto que el .txt puede ser modificado continuamente, es decir el numero de lineas de mi .txt no es fijo. Si en unas horas se crean nuevas citas medicas mi .txt va a incrementar en numero de lineas.
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
Imágen de perfil de Cindy

Ingresar cada párrafo de un .txt en un casillero diferente de un arreglo o de un ArrayList()

Publicado por Cindy (8 intervenciones) el 26/06/2017 06:01:34
Gracias. Ya lo había solucionado y efectivamente ese era el problema.
me ha quedado así.

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
public void ConsultarCitaPendiente(int h){ //mientras muestro el archivo en pantalla lo guardo en una lista
    String [] array=new String[h];
    int n=0;
    try{
        FileReader f = new FileReader("/Users/cindybohorquezsantana/NetBeansProjects/JavaApplication4/src/javaapplication4/citas_medicas.txt");
        BufferedReader br = new BufferedReader(f);
        String linea=br.readLine();
 
        while(linea!=null){
            while(n<=array.length) {
                array[n]=linea; //paso cada linea que leo a la posicion de un array
                n++;
                break;
                }
            //System.out.println(n);
            System.out.println(linea); //imprimo linea por linea del archivo, en pantalla
            linea=br.readLine();
            // n++;
        }
        this.miListaDeConversion = Arrays.asList (array); //convierto el array en un arrayList
 
    }catch(Exception r){
        System.out.println("Error en el metodo consultatCitaPendiente");
    }
}
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