我尝试读出一个 csv 文件。在我的代码中,我读出了 csv 文件中的行。因此,我使用 arraylist 将行中的每个项目添加到 arraylist。
读出一行后,我将数组列表存储在另一个数组列表中,然后读取下一行,依此类推。
现在我有几个问题和一个问题。
1)当我将一个项目添加到一个数组列表时,它是否总是添加到列表的末尾(当我没有给出在我的代码中添加项目的具体位置时)?这样就可以保持 csv 文件的顺序。
2)我发现,当我清除 arraylist datatemp 以准备读取下一行时,数组列表数据的内容也被清除。如何防止我的代码这样做?
3)有没有办法从我拥有的arraylist数据中制作一个普通的数组?
4) 我读出 csv-File 的方式是正确的还是有更好的方法?
public class CSVReader {
public void ReadCSV (String csvfilepath) {
BufferedReader CSVFile = null;
String dataRow = null;
ArrayList<Float> datatemp = new ArrayList<Float>();
ArrayList<ArrayList<Float>> data = new ArrayList<ArrayList<Float>>();
try {
CSVFile = new BufferedReader(new FileReader(csvfilepath));
} catch (FileNotFoundException e) {
e.printStackTrace();
}
try {
dataRow = CSVFile.readLine();
} catch (IOException e) {
e.printStackTrace();
}
while (dataRow != null){
String[] dataArray = dataRow.split(",");
for (String item:dataArray) {
datatemp.add(Float.valueOf(item));
}
try {
dataRow = CSVFile.readLine();
} catch (IOException e) {
e.printStackTrace();
}
data.add(datatemp);
datatemp.clear();
}
try {
CSVFile.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}