Newbie Newbie - 2 months ago 63
Java Question

Convert CSV values to a HashMap key value pairs in JAVA

HI I have a csv called

test.csv
. I am trying to read the csv line by line and convert the values into a hash key value pairs .
Here is the code :-

public class Example {
public static void main(String[] args) throws ParseException, IOException {
// TODO Auto-generated method stub

BufferedReader br = new BufferedReader(new FileReader("test.csv"));
String line = null;
HashMap<String,String> map = new HashMap<String, String>();

while((line=br.readLine())!=null){
String str[] = line.split(",");
for(int i=0;i<str.length;i++){
String arr[] = str[i].split(":");
map.put(arr[0], arr[1]);
}
}
System.out.println(map);
}
}


The csv file is as follows :-

1,"testCaseName":"ACLTest","group":"All_Int","projectType":"GEN","vtName":"NEW_VT","status":"ACTIVE","canOrder":"Yes","expectedResult":"duplicateacltrue"
2,"testCaseName":"DCLAddTest","group":"India_Int","projectType":"GEN_NEW","vtName":"OLD_VT","status":"ACTIVE","canOrder":"Yes","expectedResult":"invalidfeaturesacltrue"


When I run this code I get this error :-

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 1
Example.main(Example.java:33)


Can anyone please help me to fix the code and find out the error in my program ?

Answer

In your String when you split it on first time only contains arr[0] as 1 nothing in arr[1] so it will cause an Exception

If you does not need the 1,2, etc.. You can look the following code:

        String str[] = line.split(",");
        for(int i=1;i<str.length;i++){
            String arr[] = str[i].split(":");
            map.put(arr[0], arr[1]);
        }