-1

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


file1.csv 有 2 列(供应商 ID、名称)


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

假设 file1.csv 包含:


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


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


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

供应商 ID、名称、地址


101,vendor1,美国 102,vendor2,澳大利亚

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

谢谢

4

1 回答 1

-1

文本文件1.csv

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

文本文件2.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();
  }
} 
于 2012-11-21T06:56:31.660 回答