OpenCSV reader for Java - 如何获取列数?

时间:2013-08-12 08:22:22

标签: java opencsv

我在Java项目中有OpenCSV阅读器,并且我从CSV文件中读取数据,但是现在我正在硬编码读取它的循环中的列数。 我记得有一些方法可以获得列数,但我不记得它被称为什么以及如何使用它。

以下是代码:

public ArrayList<ArrayList<String>> getCSVContent(String filepath) throws Exception {
        CSVReader reader = new CSVReader(new FileReader(FILE_PATH));
        ArrayList<ArrayList<String>> array = new ArrayList<ArrayList<String>>();
        String[] nextLine;
        while ((nextLine = reader.readNext()) != null) {
            ArrayList<String> list = new ArrayList<String>();
            for (int i = 0; i < 5; i++) { //5 is the number of columns in the file 
                list.add(nextLine[i]);
            }
            array.add(list);
        }
        reader.close();
        return array;
    }

3 个答案:

答案 0 :(得分:2)

只需使用nextLine.length计算数组中的项目。

for (int i = 0; i < nextLine.length; i++) { 
  list.add(nextLine[i]);
}

或者使用for-each循环:

for (String col : nextLine) {
  list.add(col);
}

答案 1 :(得分:0)

一个简单的方法是你用BufferedReader的Scanner读取第一行并计算“;”或者你用什么来分割列。

如果您使用

,您可以计算它
string.toCharArray();

和++ a Integer如果是';'。

第二种方法是查看CSV阅读器的方法。我不知道它们,但你可以在eclipse中的任何地方输入(不知道它在netbeans中是如何工作的)“读者”。并按控制+空格。如果你有运气,那就有一个。

答案 2 :(得分:-1)

尝试使用此列来获取列数:reader.getColumnCount()