读取txt文件到数据库

利用以下代码可以将记事本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文件格式如下,以单个空格分开

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值