从java中的多个csv文件中检索多个列值

时间:2012-11-21 06:45:58

标签: java

假设C:\ fileupload中有一个包含这两个csv文件的文件夹:


file1.csv有2列(VendorID,Name)


file2.csv有2列(VendorID,地址)/////这里VendorID对应于file1.csv并随机放在file2.csv中

假设file1.csv包含:


101,供应商1 102,供应商2


file2.csv包含 102,澳大利亚 101,USA


我想从这两个文件中检索数据并将其存储在oracle数据库中:

厂商ID,姓名,地址


101,供应商1,USA 102,供应商2,澳大利亚

并且plz具体告诉我只通过java 任何帮助将不胜感激。

由于

1 个答案:

答案 0 :(得分:-1)

textfile1.csv

loginid3,password3
loginid5,password5
loginid1,password1
loginid4,password4
loginid2,password2

textfile2.csv

loginid3,address3
loginid2,address2
loginid1,address1
loginid5,address5
loginid4,address4

输出:

Key : loginid3 Value : password3 address :address3
Key : loginid2 Value : password2 address :address2
Key : loginid1 Value : password1 address :address1
Key : loginid4 Value : password4 address :address4
Key : loginid5 Value : password5 address :address5

CSVReadLoginPass.java

import java.io.BufferedReader;
import java.io.DataInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStreamReader;
import java.util.HashMap;
import java.util.List;
import java.util.Map;


public class CSVReadLoginPass {

 public static  Map<String,String> map1 = null;
 public static  Map<String,String> map2 = null;
  public static void main(String[] args) {

      try
      {
          readFileandPopulate();
          for (Map.Entry<String, String> entry : map1.entrySet()) {
                System.out.println("Key : " + entry.getKey() + " Value : "
                    + entry.getValue()+" address :"+map2.get(entry.getKey()));
                //insert into DB
            }
            }catch (Exception e){//Catch exception if any
                e.printStackTrace();
          System.err.println("Error: " + e.getMessage());
          }

  }
  public static void readFileandPopulate() throws Exception
  {


      FileInputStream fstream = new FileInputStream("E:\\Eclipse-Leo\\StackOverflow\\src\\resources\\textfile1.csv");
      DataInputStream in = new DataInputStream(fstream);
      BufferedReader br = new BufferedReader(new InputStreamReader(in));
      String strLine;
      map1 = new HashMap<String,String>();
          while ((strLine = br.readLine()) != null)   {
              System.out.println(strLine);
          String temp[] = strLine.split(",");
          map1.put(temp[0], temp[1]);

      }
     in.close();
     System.out.println("done 1");


     FileInputStream fstream2 = new FileInputStream("E:\\Eclipse-Leo\\StackOverflow\\src\\resources\\textfile2.csv");
      DataInputStream in2= new DataInputStream(fstream2);
      BufferedReader br2 = new BufferedReader(new InputStreamReader(in2));
      String strLine2;
          map2 = new HashMap<String,String>();
          while ((strLine2 = br2.readLine()) != null)   {
              System.out.println(strLine2);
          String temp[] = strLine2.split(",");
          map2.put(temp[0], temp[1]);

      }
     in2.close();
  }
}