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

问题描述:

我需要一个CSV文件并查找每行和每列的平均值。有922行& 11列。到目前为止,我已经能够将这些值打印到控制台,但它们并没有按行和列分开,只有一个值,然后是一个新行。到目前为止,我有:在java中读取和使用csv文件中的数据

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(); 
    } 

} 

} 

我想感谢所有帮助将这些值回行&列进行排序,并就如何找到行和列的平均值任何意见。谢谢。

+0

使用专为工作库,像openCSV – MadProgrammer

+1

我投的Apache POI –

+0

@TheLima openCSV是大(与Apache的API)和CSV更为复杂然后就值用逗号隔开,所以不需要重新发明*。我认为任何开发人员可以开发的最佳技能之一就是了解第三方库何时能够解决问题,以及何时花时间在那里推出自己的解决方案。所有你需要手动完成的解析都可以用一行或两行简单的代码完成,只是说 – MadProgrammer

对于大多数情况下使用CSV,它足以(读取和)解析文件的行或行首先,以获取行;然后将每行分割为CSV格式的分隔模式\s*,\s*,以获取每行的列。

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

更可包含分隔,,新的生产线,甚至是其他引用值先进的情况下,如"quoted blocks"(通常为双引号处理""这样分析器可以知道其中的差别),将得到更好的使用PatternMatcher解决或其他解析技术。

使用Apache POI库。

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