2017-05-31 97 views
-6

我正在使用CSV和Java。我知道如何讀取文件並從文件中打印值,但不知道如何查找特定值。我試圖將值傳入一個數組列表,然後使用indexof()方法,但是這種方法沒有奏效。有沒有辦法將價值拉出來並打印出來?如何使用Java篩選CSV文件

+4

請提供[最小,完整,可驗證的示例](https://開頭計算器.com/help/mcve) – FortyTwo

+1

是的,有一種方法。你有嘗試過什麼嗎? – tnw

+0

不,我沒有,我正在考慮使用數組列表,然後從那裏添加和刪除。 @tnw –

回答

0

假設你有country.csv與內容:

"1.0.0.0","1.0.0.255","16777216","16777471","AU","Australia" 
"1.0.1.0","1.0.3.255","16777472","16778239","CN","China" 
"1.0.4.0","1.0.7.255","16778240","16779263","AU","Australia" 
"1.0.8.0","1.0.15.255","16779264","16781311","CN","China" 
"1.0.16.0","1.0.31.255","16781312","16785407","JP","Japan" 
"1.0.32.0","1.0.63.255","16785408","16793599","CN","China" 
"1.0.64.0","1.0.127.255","16793600","16809983","JP","Japan" 
"1.0.128.0","1.0.255.255","16809984","16842751","TH","Thailand" 

一個讀取這個文件,並同時篩選所需的字段的方式。例如,它顯示我們如何通過國家代碼過濾不同的國家:

import java.io.BufferedReader; 
import java.io.FileReader; 
import java.io.IOException; 
import java.util.HashMap; 
import java.util.Map; 

public class CSVReader { 

    static Map<String, String> map = new HashMap<String, String>(); 

    public static void main(String[] args) { 

     String csvFile = "/home/../country.csv"; 
     String line = ""; 
     String cvsSplitBy = ","; 

     try (BufferedReader br = new BufferedReader(new FileReader(csvFile))) { 

      while ((line = br.readLine()) != null) { 

       // use comma as separator 
       String[] country = line.split(cvsSplitBy); 
       for (int i = 0; i < country.length; i++) { 
        map.put(country[4], country[5]); 
       } 
      } 

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

     for (Map.Entry<String, String> entry : map.entrySet()) { 
      String code = entry.getKey(); 
      String name = entry.getValue(); 
      System.out.println("Country [code= " + code + " , name=" + name + "]"); 
     } 
    } 

} 

OUTPUT:

Country [code= "CN" , name="China"] 
Country [code= "JP" , name="Japan"] 
Country [code= "AU" , name="Australia"] 
Country [code= "TH" , name="Thailand"] 
+0

我想過濾它不讀取文件。 @VasylLyashkevych –

+0

如何在不讀取文件時過濾文件?我們必須閱讀它,然後過濾內容或同時進行 –

+0

是的,但我知道如何閱讀文件,但不知道如何過濾它。 @VasylLyashkevych –