Java - Leer líneas específicas desde un archivo csv

 
Vista:
Imágen de perfil de jose
Val: 64
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Leer líneas específicas desde un archivo csv

Publicado por jose (73 intervenciones) el 28/11/2018 06:16:50
Buenos días,

He de crear un método que muestre las líneas desde la 5 a la 8 de un archivo .csv

He hecho el siguiente código. Donde le he puesto un contador para que empiece desde la línea 5. Sin embargo, empieza leyendo siempre por la línea 0.

He probado diferentes formas que he encontrado por internet pero todas me dan el mismo resultado.

Alguien podría ayudarme y explicarme el por que.

Muchas gracias,

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
public String mostrarDatosProvincias(String fichero) {
 
    BufferedReader br = null;
    try {
        br = new BufferedReader(new FileReader(fichero));
 
 
        String line=br.readLine();
        int i= 5;
        while (line !=null && i<=8) {
 
            String[] provincia = line.split(";");
            System.out.println(Arrays.toString(provincia));
            line = br.readLine();
            i++;
            //return line;
 
        }
 
        br.close();
 
    } catch (Exception e) {
        //Excepció!
        System.out.println("Error leyendo: " + fichero + e);
    }
 
 
    return "";
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 jose
Val: 64
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Leer líneas específicas desde un archivo csv

Publicado por jose (73 intervenciones) el 28/11/2018 21:53:52
Hola de nuevo,

Tengo algo pero no me gusta nada. Resulta puedo leer una línea, pero no toda.

La línea en cuestión tiene está longitud:

Araba/Álava;;0,47;0,46;0,46;0,46;0,46;0,47;0,47;0,47;0,47;0,00;0,00;0,00;0,00;0,00

Pero como véis el array tiene 7 posiciones.

System.out.println(provincia[0] + "\t" + provincia[1] + " " + provincia[2] + " "
+ provincia[3] + " " + provincia[4] + " " + provincia[5] + " " + provincia[6] + " ");

Lo que querría es que escribiese todas las posiciones hasta 0,00. Por otra parte para poder visualizar otra línea he de repetir el código entero cambiando el valor de if (i>3) { por if (i>4).

Me parece que queda como el culo, pero no encuentro otra forma.

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
String linea;
 
		try {
			 BufferedReader br = new BufferedReader(new FileReader(fichero));
 
           int i = 0;
            while ((linea = br.readLine()) != null && i <= 8) {
 
              if (i>3) {
                   String[] provincia = linea.split(";");
                    for (i = 0; i < provincia.length; i++) {
                    }
                    System.out.println(provincia[0] + "\t" + provincia[1] + " " + provincia[2] + " "
                            + provincia[3] + " " + provincia[4] + " " + provincia[5] + " " + provincia[6] + " ");
                }
              i++;
 
            }
            br.close();
 
		} catch (Exception e) {
			//Excepció!
			System.out.println("Error leyendo: " +fichero + e);
		}
 
 
		try
		{
			 BufferedReader br = new BufferedReader(new FileReader(fichero));
		 int i = 0;
         while ((linea = br.readLine()) != null && i <= 8) {
 
           if (i>4) {
                String[] provincia = linea.split(";");
                 for (i = 0; i < provincia.length; i++) {
                 }
                 System.out.println(provincia[0] + "\t" + provincia[1] + " " + provincia[2] + " "
                         + provincia[3] + " " + provincia[4] + " " + provincia[5] + " " + provincia[6] + " ");
             }
           i++;
 
         }
         br.close();
 
		} catch (Exception e) {
			//Excepció!
			System.out.println("Error leyendo: " + fichero + e);
		}
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 jose
Val: 64
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Leer líneas específicas desde un archivo csv

Publicado por jose (73 intervenciones) el 01/12/2018 12:51:57
SOLUCIONADO SIN AYUDA.

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
try {
    br = new BufferedReader(new FileReader(pFitxer));
    String line = "";
    int i = 0;
    System.out.println("Detall per comarques");
    while ((line = br.readLine()) != null && i <= 8) {
        i++;
        if ((i > 3)&&(i < 9)) {
            if (i==4 || i==6 || i==7) {
                String[] provincia = line.split(";");
                System.out.println(provincia[0] + "\t\t" + provincia[1] + " " + provincia[2] + " " + provincia[3]
                        + " " + provincia[4] + " " + provincia[5] + " " +  provincia[6]);
 
            }else {
                String[] provincia = line.split(";");
                System.out.println(provincia[0] + "\t" + provincia[1] + " " + provincia[2] + " " + provincia[3]
                        + " " + provincia[4] + " " + provincia[5] + " " +  provincia[6]);
 
            }
        }
 
    }
 
} catch (Exception e) {
    //Excepció!
    System.out.println("Error leyendo: " + pFitxer + e);
}
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

Leer líneas específicas desde un archivo csv

Publicado por Liliana (1 intervención) el 12/07/2021 19:54:12
Muchas gracias!! me ha servido de ayuda
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