java讀取記事本文件的部分數據添加到mysql


package com.tideway.readtxt;

import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;

public class ReadTXT {
    public static List<String> trim(String[] source){
        List<String> list = new ArrayList<String>();
      //循環遍歷得到的行文件,加入到list中
for(String item : source){ if(null==item||"".equals(item)) continue; list.add(item); } return list; } public static void main(String[] args) { int read = 0; int write = 0; FileInputStream fis = null; InputStreamReader isr = null; BufferedReader br = null; // 用於包裝InputStreamReader,提高處理性能。因為BufferedReader有緩沖的,而InputStreamReader沒有。 try { String str = ""; fis = new FileInputStream("e:\\AGL_001.TXT");// FileInputStream // 從文件系統中的某個文件中獲取字節 isr = new InputStreamReader(fis);// InputStreamReader 是字節流通向字符流的橋梁, br = new BufferedReader(isr);// 從字符輸入流中讀取文件中的內容,封裝了一個new // InputStreamReader的對象 while ((str = br.readLine()) != null) { //截取得到的一行數據 String[] parms = str.split("\t"); //跳過第一行 if(parms[0].equals("No")) continue; //把得到的數據放進list List<String> list = trim(parms); read++;
          //調用添加方法,把list的第1,3,4,7條數據加入到mysql write
+=JDBCAdd.Insert(list.get(0),list.get(2),list.get(3),list.get(6)); }
        //記錄下讀了/寫了多少條數據 System.out.println(
"read="+read+"; write="+write); } catch (FileNotFoundException e) { System.out.println("找不到指定文件"); } catch (IOException e) { System.out.println("讀取文件失敗"); } finally { try { br.close(); isr.close(); fis.close(); // 關閉的時候最好按照先后順序關閉最后開的先關閉所以先關s,再關n,最后關m } catch (IOException e) { e.printStackTrace(); } } } }

讀取txt文件,添加到list中,讀取一條向數據庫中添加一條。

添加操作:

package com.tideway.readtxt;

import java.sql.Connection;
import java.sql.PreparedStatement;

public class JDBCAdd {
    
    
    public static int Insert(String... parms){
    Connection conn=null;
    PreparedStatement preStatement=null;//創建PreparedStatement對象
    try {
        //1、准備Connection連接數據庫
        conn=JDBCTools.getConnection();
        //2、准備sql語句
        //sql語句不再采用拼接方式,應用占位符問號的方式寫sql語句。
        String sql="insert into t_attendance(id,EnID,Name,DateTime) values(?,?,?,?)";
        //3、准備prepareStatement
        //對占位符設置值,占位符順序從1開始,第一個參數是占位符的位置,第二個參數是占位符的值。
        preStatement=conn.prepareStatement(sql);
        //4、占位符設置值
        for(int i=0;i<parms.length;i++){
            preStatement.setObject(i+1, parms[i]);
        }
        //5、執行sql
        return preStatement.executeUpdate();
        
    } catch (Exception e) {
        // TODO: handle exception
        e.printStackTrace();
        return 0;
    }finally{
        //6、關閉數據庫等
        JDBCTools.closeConnection(null, preStatement, conn);
    }
}
}

數據庫連接的方法:

package com.tideway.readtxt;

import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;

public class JDBCTools {

    /**
     * 功能:JDBC連接數據庫
     * @return
     * @throws Exception
     */
    public static Connection getConnection() throws Exception{
        //創建Properties對象
        Properties pro=new Properties();
        //獲取輸入流
        InputStream in=
                JDBCTools.class.getClassLoader().getResourceAsStream("jdbc.properties");
        //加載輸入流
        pro.load(in);
        
        String driver=pro.getProperty("driver");
        String jdbcUrl=pro.getProperty("jdbcUrl");
        String user=pro.getProperty("user");
        String password=pro.getProperty("password");
        //加載數據庫驅動程序
        Class.forName(driver);
        //通過DriverManager的getConnection()方法獲取數據庫連接
        Connection conn=DriverManager.getConnection(jdbcUrl, user, password);
        return conn;
    }
    /**
     * 功能:關閉數據庫連接
     * @param rs
     * @param statement
     * @param conn
     */
    public static void closeConnection(ResultSet rs,Statement statement,Connection conn){
        if(rs!=null){
            try {
                rs.close();
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
        if(statement!=null){
            
            try {
                statement.close();
            } catch (Exception e2) {
                // TODO Auto-generated catch block
                e2.printStackTrace();
            }
        }
        if(conn!=null){
            try {
                conn.close();
            } catch (Exception e2) {
                // TODO Auto-generated catch block
                e2.printStackTrace();
            }
        }
    }
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM