Por ejemplo en el caso de leer un fichero .csv línea a línea, el error obtenido era "indexOutOfBound".
El fichero de ejemplo a leer era del tipo: "valor1;valor2;;;;;;;"
El código para leer el fichero era:
br = new BufferedReader(new FileReader(fichero));
while ((line = br.readLine()) != null) {
Scanner scanner = new Scanner(line);
String[] datos = line.split(cvsSplitBy);
}
El problema es que el método split no devuelve el elemento en el caso de que este sea nulo, es decir, al hacer el split de la línea, el valor devuelto era: "valor1;valor2" y al tratar de acceder a la tercera posición del srting devuelve error.
La solución es indicarle al método split que devuelva estos elementos aunque sean nulos:
br = new BufferedReader(new FileReader(fichero));
while ((line = br.readLine()) != null) {
Scanner scanner = new Scanner(line);
String[] datos = line.split(cvsSplitBy,-1);
}
El cambio respecto al código anterior es añadir como segundo parámetro al método "split" el valor: "-1"