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