首页 > 解决方案 > 如何根据文件中的数据类型从 CSV 文件中读取 2 个 ArrayList?

问题描述

我是 java 的初学者,我不知道如何从 CSV 文件读取到 2 个 ArrayLists,可能使用令牌和。类型。(list->Array) 根据我们添加到一个列表或另一个列表的标记。

更新:文件的格式是固定的。这是格式:

安德鲁,尼克,11,钢笔,苹果,背包,5500.0,570.0,4700.0

前任:

名称、描述、55.0、100.0

命名为字符串的 ArrayList。

55.0 变成一个 Double 的 ArrayList;

这是我的代码,我首先想弄清楚基本的。

public class CSVRead {
    public static void main(String[] arg) throws Exception {

          BufferedReader CSVFile = new BufferedReader(new FileReader("Auto2.csv"));

          String data= CSVFile.readLine(); 

          while (data != null){
           String[] dataArray = data.split(",");
           for (String item:dataArray) { 
              System.out.print(item + "\t"); 
           }
           System.out.println(); 
           data = CSVFile.readLine(); 
          }

          CSVFile.close();


          System.out.println();

         } 
        }

标签: javaarraysarraylistsplittoken

解决方案


你可以试试下面的代码。作为示例,我将索引零作为名称字段,将索引六作为您需要的双精度值。根据格式,您可以获得实际的字段索引并将其添加到您的列表中。

public void loadData() throws IOException {
    List<String> namesList = new ArrayList<>();
    List<Double> someDoubleList = new ArrayList<>();

    BufferedReader CSVFile = new BufferedReader(new FileReader("/Users/leon/Desktop/Auto2.csv"));
    String data = CSVFile.readLine();

    while (data != null) {
        String[] dataArray = data.split(",");
        // Add the names to string list as the index of it is zero
        namesList.add(dataArray[0]);

        // Add the double value to double list as the index of it is six.
        someDoubleList.add(Double.parseDouble(dataArray[6]));
        data = CSVFile.readLine();
    }

    CSVFile.close();
}

推荐阅读