讀取 csv 檔 ,輸出成 ArrayList
F_ReadCSVtoArrayList.java
package ffile;
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
public class F_ReadCSVtoArrayList {
/**
* 讀取csv檔,回傳ArrayList,裡面的每一個元素都是另一個ArrayList,其中存放每個單列的資料
* @param csvpath csv路徑
* @return ArrayList,裡面的每一個元素都是一個ArrayList,其中存放每個單列的資料
*/
public static ArrayList<ArrayList> readCSVToArrayList(String csvpath) {
//存放所有檔案內容
ArrayList<ArrayList> dataAL = new ArrayList<ArrayList>();
//讀取檔案
BufferedReader reader;
try {
reader = new BufferedReader(new FileReader(csvpath));
// reader.readLine();// 是否讀取第一行 (加上註解代表會讀取,註解拿掉不會讀取)
String line = null;// 暫存用(測試是否已讀完檔)
// 讀取資料
while ((line = reader.readLine()) != null) {
//存放每一列資料內容(橫的)
ArrayList<String> ticketStr = new ArrayList<String>();
String item[] = line.split(",");//csv文件為依據逗號切割
//清除上一次存入的資料
ticketStr.clear();
//讀檔(單列資料)
for(int i=0; i<item.length; i++){
ticketStr.add(i, item[i]);
// System.out.println(ticketStr.get(i));
}
dataAL.add(ticketStr);
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return dataAL;
}
}
接著就能操作 ArrayList 中的資料,完成需要的功能