2015-11-05 98 views
0

我需要一個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

回答

0

對於大多數情況下使用CSV,它足以(讀取和)解析文件的行或行首先,以獲取行;然後將每行分割爲CSV格式的分隔模式\s*,\s*,以獲取每行的列。

遍歷行和列以找到之後的平均值應該是微不足道的。

更可包含分隔,,新的生產線,甚至是其他引用值先進的情況下,如"quoted blocks"(通常爲雙引號處理""這樣分析器可以知道其中的差別),將得到更好的使用PatternMatcher解決或其他解析技術。

0

使用Apache POI庫。

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