title: java 8 i/o stream application
body: <p>I have a CSV file below and I wrote the method below to parse the file.</p>
  
  <pre><code>"PRODUCT_NAME","PRODUCT_CATEGORY","SALES_PRICE"
  "Hair Gel","Beauty",6.99 
  "Scotch tape","Office Supply",2.99
  "Office Chair","Office Supply",134.99
  </code></pre>
  
  <p>My code:</p>
  
  <pre><code>public static void ReadFile(String path, Map&lt;String, List&lt;Double&gt;&gt; db){
      try(BufferedReader br = new BufferedReader(new FileReader(path))){
          String line;
          if((line = br.readLine()) != null){
              //this line is the heading..and needed to be skipped
          }
          while ((line = br.readLine()) != null) {
              String[] keys = line.split(",");
              keys[1] = keys[1].replace("\"", "");
              if(db.containsKey(keys[1])){
                  List&lt;Double&gt; list = db.get(keys[1]);
                  list.add(Double.valueOf(keys[2]));
                  db.put(keys[1], list);
              }
              else{
                  List&lt;Double&gt; list = new ArrayList&lt;&gt;();
                  list.add(Double.valueOf(keys[2]));
                  db.put(keys[1],list);
              }
          }
  
      }catch(IOException e){}
  }
  </code></pre>
  
  <p>It works fine in parsing the file but my main question is how could the above method be written taking advantage of java8 stream and lambda functionality?</p>