//***************************************************************************
// Read any size CSV file into a list of String arrays 
//***************************************************************************
import java.io.*;
import java.util.*;

public class ReadCSVintoList 
{     
    public static void main(String[ ] args)
    {  
//      String filename	= "../zAnalytics/dataset3.csv";	            
        String filename = "/home/sultans/web/java/demo/8inpout/zAnalytics/dataset3.csv";

        if (args.length > 0)                                        //if argument is provided 
            filename = args[0];                                     //use it as filename

        List<String[]> records = new ArrayList<>();                 //list of string arrays to hold the file data                 

        readCSV(filename, records);
        printCSV(records);
    }
    public static void readCSV(String filename, List<String[]> records)
    {
        System.out.println("SOURCE INPUT...");
        try 
        { 
            FileReader file    = new FileReader(filename);
            BufferedReader buf = new BufferedReader(file);

            String line;
            while ((line = buf.readLine()) != null) 
            {
                System.out.println(line);                   //print CSV line as is
                String[] elements = line.split(",");        //split on commas
                records.add(elements);                      //add String array to list
            }  
        }
        catch(Exception e) 
        {
            System.out.println(e);					//print the exception
            e.printStackTrace();					//print stack trace
        }
    }
    public static void printCSV(List<String[]> records)
    {
        System.out.println();
        System.out.println("ARRAYLIST OF ARRAYs...");

        for (String[] record : records) 
        {
            System.out.println(Arrays.toString(record));
        }
    }
}