Tôi đang cố nhập tệp CSV vào một mảng mà tôi có thể sử dụng trong chương trình Java. Tệp CSV đã tự nhập thành công và đầu ra xuất hiện trên Thiết bị đầu cuối nhưng nó xuất hiện lỗi:Phân tích dữ liệu từ CSV sang mảng trong Java
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 1
at CompareCSV.main(CompareCSV.java:19)
ở cuối. Ngoài ra, khi tôi cố gắng gọi lên các phần tử trong mảng, nó cũng cho thấy cùng một lỗi. Mã của tôi là dưới đây:
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();
}
}
}
Tại sao bạn sử dụng hằng số được mã hóa cứng trong vòng lặp for của bạn, thay vì kích thước kết quả? – Perception
Bạn có thể sử dụng API Java CSV hiện tại cho nhu cầu của mình: http://sourceforge.net/projects/csv4j/ hoặc http://sourceforge.net/projects/javacsv/ chẳng hạn. –
@Perception là đúng, bạn có chắc là bạn có 3 giá trị sau khi đọc một dòng không? – Marcelo