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

时间:2023-12-06 09:25:38

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

利用Java实现:

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

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

package com.test.IF.service;

import java.io.File;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException; import org.apache.commons.io.FileUtils;
import org.apache.commons.io.LineIterator; public class ReadCustomerFile { int idx;
Connection conn = null;
PreparedStatement pstmt = null; // 使用commons-io.jar包的FileUtils的类进行读取
public void readTxtFileByFileUtils(String fileName) {
File file = new File(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();
}
} // 插入到数据库中
public void insertCustInfo(String[] strArray) {
try {
StringBuffer sqlBf = new StringBuffer();
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();
}
}
}
} // 连接数据库
public Connection 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();
} return conn;
} // 关闭数据库
public void dbDisConnection() {
if (conn != null) {
try {
conn.close();
System.out.println("Connection 关闭!");
} catch (SQLException e) {
e.printStackTrace();
}
}
} public static void main(String[] args) {
ReadCustomerFile rcf = new ReadCustomerFile();
rcf.readTxtFileByFileUtils("D:\\test\\customer_info.txt");
}
}

确认数据库数据:

aaarticlea/png;base64,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" alt="" />