Java读取txt文件,读取结果保存到数据库

王朝学院·作者佚名  2016-08-27
窄屏简体版  字體: 小  |  中  |  大  |  超大  

需求:有一个很大的txt文件(1,000,000条数据),从txt中读取有用数据库后保存到Oracle数据库中

利用java实现:

1、加载文件后一行一行读取

2、数据库连接后按行插入到数据库

packagecom.test.IF.service;importjava.io.File;importjava.io.IOException;importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.PReparedStatement;importjava.sql.SQLException;importorg.apache.commons.io.FileUtils;importorg.apache.commons.io.LineIterator;publicclassReadCustomerFile {intidx;

Connection conn=null;

PreparedStatement pstmt=null;//使用commons-io.jar包的FileUtils的类进行读取publicvoidreadTxtFileByFileUtils(String fileName) {

File file=newFile(fileName);

dbConnection();try{

LineIterator lineIterator= FileUtils.lineIterator(file, "GB2312");while(lineIterator.hasNext()) {

String line=lineIterator.nextLine();//行数据转换成数组String[] custArray = line.split("\\|");

insertCustInfo(custArray);

Thread.sleep(10);

}

}catch(IOException e) {

e.printStackTrace();

}catch(InterruptedException e) {

e.printStackTrace();

}finally{

dbDisConnection();

}

}//插入到数据库中publicvoidinsertCustInfo(String[] strArray) {try{

StringBuffer sqlBf=newStringBuffer();

sqlBf.setLength(0);

sqlBf.append("INSERT INTO TEMP_CUST_INFO(CUST_NO, CUST_NM, MOB_NO1) \n");

sqlBf.append(" VALUES(? \n");

sqlBf.append(" , ? \n");

sqlBf.append(" , ?) \n");

pstmt=conn.prepareStatement(sqlBf.toString());

idx= 1;

pstmt.clearParameters();

pstmt.setInt(idx++, Integer.parseInt(strArray[0]));

pstmt.setString(idx++, strArray[1]);

pstmt.setString(idx++, strArray[2]);

pstmt.executeUpdate();

}catch(SQLException e) {

e.printStackTrace();

}finally{if(pstmt !=null) {try{

pstmt.close();

}catch(SQLException e) {

e.printStackTrace();

}

}

}

}//连接数据库publicConnection dbConnection() {try{

Class.forName("oracle.jdbc.driver.OracleDriver");

String url= "jdbc:oracle:thin:@127.0.0.1:1521:orcl";

String user= "scott";

String passWord= "goodluck";

conn=DriverManager.getConnection(url, user, password);

System.out.println("Connection 开启!");

}catch(ClassNotFoundException e) {

e.printStackTrace();

}catch(SQLException e) {

e.printStackTrace();

}returnconn;

}//关闭数据库publicvoiddbDisConnection() {if(conn !=null) {try{

conn.close();

System.out.println("Connection 关闭!");

}catch(SQLException e) {

e.printStackTrace();

}

}

}publicstaticvoidmain(String[] args) {

ReadCustomerFile rcf=newReadCustomerFile();

rcf.readTxtFileByFileUtils("D:\\test\\customer_info.txt");

}

}

确认数据库数据:

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航