我是Java的初学者,我不知道如何将CSV文件读取到2个ArrayLists中,也许使用标记and。类型。 (列表->数组)
根据令牌,我们添加到一个列表或另一个列表。

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

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


  例如:
  
  名称,说明,55.0、100.0
  
  将名称命名为String的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();

         }
        }

最佳答案

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

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

07-25 23:53
查看更多