java读取文本文件到mysql数据库【示例3】-批量导入文本文件
1、需求:批量导入文件夹“手机号码归属地”下的所有文本文件,如图:

2、java源代码:
package com.insigma.zd.group4.liuchao.jdbc;import java.io.BufferedReader;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.IOException;import java.io.InputStreamReader;import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;import java.sql.Statement;public class ReadConfigureFile3 {/** * @param args */public static void main(String[] args) {// TODO Auto-generated method stubString driver = "com.mysql.jdbc.Driver";String url = "jdbc:mysql://localhost:3306/test";String username = "root";String password = "1234";Connection conn = null;Statement stmt = null;try {conn = DriverManager.getConnection(url, username, password);stmt = conn.createStatement();} catch (SQLException e1) {// TODO Auto-generated catch blocke1.printStackTrace();}File file = new File("D:\\share\\手机号码归属地");//得到所选择文件夹String path = file.getAbsolutePath();//得到选择文件夹的全路径String[] files = file.list();//取得文件夹下的所有文件try {conn.setAutoCommit(false);//设置数据手动提交,自己管理事务 } catch (SQLException e1) {// TODO Auto-generated catch blocke1.printStackTrace();}//for(int i=0; i<files.length;i++){//遍历文件夹下所有文件String fileName = files[i].substring(0, files[i].lastIndexOf("."));//取得所选文件名String province = fileName.substring(0,fileName.length()-2);String cardType = fileName.substring(fileName.length()-2);FileInputStream fis = null;try { fis = new FileInputStream(path+"\\"+files[i]);InputStreamReader input = new InputStreamReader(fis);BufferedReader br = new BufferedReader(input);String line = null;String sql = null;String info[] = null;try {while((line = br.readLine())!= null){info = line.split("-");sql = sql = "insert into telephone(startPhone,endPhone,city,province,cardType)values('"+ info[0] +"','"+info[1]+"','"+info[2]+"','"+province+"','"+cardType+"')";//stmt.executeUpdate(sql);stmt.addBatch(sql);}stmt.executeBatch();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();} } catch (FileNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();}try {//提交事务conn.commit();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}}
3、成功导入到数据库:
