讀取 csv 檔,輸出 arraylist


讀取 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 中的資料,完成需要的功能