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

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");
    }
}

时间: 2024-10-24 10:48:40

Java 读取txt文件,读取结果保存到数据库的相关文章

java 实现txt文件读取,写入操作实例代码。

一.需求:在txt文件中需要把建表语句的varchar(XXX)里面的XXX乘以4,然后在按照原来的格式进行输出. 需求如下: 转换后如下图: 实现代码如下: package commingming; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileReader; import java.io.FileWriter; public class

分批次读取csv文件,并保存到数据库

读取上百万行的csv文件,由于数据量太大,一次性将csv的内容读取出来,保存在内存中,会导致内存严重吃不消,最后直接宕机,所以建议采取分批次读数据然后保存数据库中,以下是简单测试方法,可根据具体需求做修改.对大批量数据的操作,建议用jdbc直接批量添加,修改,删除等操作. import java.util.List;import java.io.BufferedReader;import java.io.File;import java.io.FileNotFoundException;impo

利用正则表达式读取txt文件中的邮箱,电话号码,url地址,手机号,将数据一行一个保存到一个新的文件中去

本人最近整合了从文本中提取信息,将之保存的新的文本中,在此处用到的是正则表达式,希望大家一起学习. 文件操作类:fileOperation.java package dyx_13; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileOutputStream; import java.io.FileReader; import java.io.F

java读取TXT文件的方法

java读取txt文件内容.可以作如下理解: 首先获得一个文件句柄.File file = new File(); file即为文件句柄.两人之间连通电话网络了.接下来可以开始打电话了. 通过这条线路读取甲方的信息:new FileInputStream(file) 目前这个信息已经读进来内存当中了.接下来需要解读成乙方可以理解的东西 既然你使用了FileInputStream().那么对应的需要使用InputStreamReader()这个方法进行解读刚才装进来内存当中的数据 解读完成后要输出

Java后台按行读取txt文件

java读取txt文件内容.可以作如下理解: 首先获得一个文件句柄.File file = new File(); file即为文件句柄.两人之间连通电话网络了.接下来可以开始打电话了. 通过这条线路读取甲方的信息:new FileInputStream(file) 目前这个信息已经读进来内存当中了.接下来需要解读成乙方可以理解的东西 既然你使用了FileInputStream().那么对应的需要使用InputStreamReader()这个方法进行解读刚才装进来内存当中的数据 解读完成后要输出

java读取TXT文件的方法 (转)

转自:http://www.cnblogs.com/manongxiaojiang/archive/2012/10/13/2722068.html java读取txt文件内容.可以作如下理解: 首先获得一个文件句柄.File file = new File(); file即为文件句柄.两人之间连通电话网络了.接下来可以开始打电话了. 通过这条线路读取甲方的信息:new FileInputStream(file) 目前这个信息已经读进来内存当中了.接下来需要解读成乙方可以理解的东西 既然你使用了F

Java读取txt文件,换行写txt文件

1. Java读取txt文件 package com.campu; import java.io.BufferedInputStream; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.InputStreamReader; import java.io.Reader; /** * H20121012.java */ public class H2

java如何读取txt文件

java读取txt文件源码如下,仅是最简略版本: package p1; import java.io.BufferedReader; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStreamReader; public class readTXT {          public static void main(String[] args) throws IOExceptio

java读取txt文件的2中方法---并将内容(每一行以固定的字符分割切成2段)存到map中去

#java读取txt文件的第一种方法 /** * 方法:readTxt * 功能:读取txt文件并把txt文件的内容---每一行作为一个字符串加入到List中去 * 参数:txt文件的地址 * 返回:Map * @param file * @return * @throws IOException */ public static Map<String, String> readTxt(String file) throws IOException { Map<String, Strin

react FileReader读取TXT文件并保存 split切割字符串 map()分别渲染切割后的数组内的所有字符串

//class my_fileReader( e ) { console.log(e.target.files[0]); const reader = new FileReader(); // 用readAsText读取TXT文件内容 reader.readAsText(e.target.files[0]); reader.onload = function (e) { console.log(e.target.result);   //读取结果保存在字符串中 let my_str = e.ta