利用以下代码可以将记事本txt文件中的内容读取到数据库
package com.mybatis.test;
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 ReadFile {
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 sqlBuffer = new StringBuffer();
sqlBuffer.setLength(0); // 以下为user表对应的四个列,即四个属性id,username,userage,useraddress
sqlBuffer.append("INSERT INTO USER(ID,USERNAME,USERAGE,USERADDRESS) \n");//数据表中的结构
sqlBuffer.append(" VALUES(? \n");
sqlBuffer.append(" ,? \n");
sqlBuffer.append(" ,? \n");
sqlBuffer.append(" ,?) \n");
pstmt = conn.prepareStatement(sqlBuffer.toString());
idx = 1;
pstmt.clearParameters();
pstmt.setInt(idx++, Integer.parseInt(strArray[0]));
pstmt.setString(idx++, strArray[1]);
pstmt.setString(idx++, strArray[2]);
pstmt.setString(idx++, strArray[3]);
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("com.mysql.cj.jdbc.Driver");
String url = "jdbc:mysql://127.0.0.1:3306/mybatis?useSSL=false"; //MySQL里对应的数据库地址
String user = "root";
String password = "你自己的密码";
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) {
ReadFile readFile = new ReadFile();
readFile.readTxtFileByFileUtils("C:\\Users\\Administrator\\Desktop\\test.txt");
}
}
所用的txt文件格式如下,以单个空格分开