Estoy tratando de importar un archivo CSV en una matriz que puedo usar dentro de un programa Java. El archivo CSV se ha importado correctamente y el resultado aparece en el Terminal pero arroja el error:Análisis de datos de CSV a matriz en Java
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 1
at CompareCSV.main(CompareCSV.java:19)
al final. Además, cuando intento activar elementos en la matriz, también muestra el mismo error. Mi código es el siguiente:
import java.io.*;
import java.util.*;
public class CompareCSV {
public static void main(String[] args) {
String fileName = "sampledata1.csv";
try {
BufferedReader br = new BufferedReader(new FileReader(fileName));
String strLine = null;
StringTokenizer st = null;
int lineNumber = 0, tokenNumber = 0;
while((fileName = br.readLine()) != null) {
lineNumber++;
String[] result = fileName.split(",");
for (int x=0; x<result.length; x++) {
System.out.println(result[x]);
}
}
}
catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
¿Por qué está utilizando una constante codificada en su bucle for, en lugar del tamaño del resultado? – Perception
Puede usar la API de CSV Java existente para sus necesidades: http://sourceforge.net/projects/csv4j/ o http://sourceforge.net/projects/javacsv/, por ejemplo. –
@Perception tiene razón, ¿está seguro de tener 3 valores después de leer una línea? – Marcelo