我正在尝试读取.csv文件,如下所示:
BufferedReader reader = Files.newBufferedReader(Paths.get("przedmioty.csv"));
CSVParser csvParser = new CSVParser(reader, CSVFormat.DEFAULT.withHeader("Name", "Teacher", "Years").withIgnoreHeaderCase().withTrim());
for (CSVRecord csvRecord: csvParser) {
// Accessing Values by Column Index
String name = csvRecord.get(0);
//Accessing the values by column header name
String Teacher= csvRecord.get(1);
String years = csvRecord.get(2);
//Printing the record
System.out.println("Record Number - " + csvRecord.getRecordNumber());
System.out.println("Name: " + name);
System.out.println("Teacher: " + Teacher);
System.out.print("Years : " + years );
System.out.println("\n\n");
}
我的.csv就是这样
Name Teacher Years
Math Leszek Krauze 2
X Grimm Dostojowksi 3
Y Dimitriv Vladiskovic 4
我要
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 1
at org.apache.commons.csv.CSVRecord.get(CSVRecord.java:79)
at main.Task01.main(Task01.java:294)
我使用apache commons csv。
答案 0 :(得分:-1)
我尝试使用以下代码,对我来说很好。您也可以检查。我正在使用通用CSV版本1.4。请检查下面的代码。我已经修改了下面的代码。
static boolean redcheck(int array[])// checks if letters are repeated
{
for(int i=0;i<array.length-1;i++)
{
for(int j=i+1;j<array.length;j++)
{
if(array[i]==array[j])
{
return false;
}
}
}
return true;
}
您提到的制表符分隔的CSV文件存在问题。 我在github链接下方提供了该链接,以便您可以运行和测试,并且在testdata文件夹中还包含一个csv文件。这是基于Maven的项目。
https://github.com/debjava/sample-tab-csv-parser 希望它能解决您的问题。