在java中读取和使用来自csv文件的数据

时间:2015-11-05 01:18:53

标签: java csv

我需要获取CSV文件并找到每行和每列的平均值。有922行& 11列。到目前为止,我已经能够将值打印到控制台,但它们不是由行和列分隔,只是一个值,然后是一个新行。到目前为止,我有:

public static void main(String[] args) {

    String fileName = "eeg.csv";
    File file = new File(fileName);

    try {
        Scanner inputStream = new Scanner(file);
        while (inputStream.hasNext()){
            String data = inputStream.next();
            System.out.println(data);
        }
        inputStream.close();

    } catch (FileNotFoundException e) {
        e.printStackTrace();
    }

}

}

我很感激任何帮助将值排序回行和&列,以及有关如何按行和列查找平均值的任何建议。谢谢。

2 个答案:

答案 0 :(得分:0)

对于大多数使用CSV的情况,首先要按行或行分组(读取和)解析文件,以获取行;然后按分隔符模式拆分每一行,对于CSV为\s*,\s*,以获取每一行的列。

遍历行和列以找到之后的平均值应该是微不足道的。

更高级的情况,例如可以包含分隔符"quoted blocks"的{​​{1}},新行或甚至其他引用值(通常作为双引号,处理,以便解析器可以知道差异),使用""Pattern或其他解析技术可以更好地解决。

答案 1 :(得分:0)

使用Apache POI库。

public int getPhysicalNumberOfRows();
public int getFirstRowNum();
public int getLastRowNum();