csvファイルを読み出そうとしています。私のコードでは、csvファイルの行を読み取りました。そのため、arraylistを使用して、行の各項目をarraylistに追加します。
行を読み取った後、他の配列リストに配列リストを格納し、次の行を読み取るなどに進みます。
ここにいくつかの質問と1つの問題があります。
1)配列リストにアイテムを追加するとき、それは常にリストのenに追加されますか(コードのようにアイテムを追加する特定の場所を指定しない場合)?これにより、csvファイルの順序が維持されます。
2)次の行の読み取りを準備するためにarraylist datatempをクリアすると、配列リストデータの内容もクリアされることがわかりました。コードがそうするのを防ぐにはどうすればよいですか?
3)私が持っているarraylistデータから通常の配列を作成する方法はありますか?
4)csvファイルを読み取る私の方法は正しいですか、それとももっと良い方法がありますか?
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();
}
}
}