java 读取文件夹并存入数据库(TXT)

package com.zte.m2m.dao.upload;


import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStream;


import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPFile;
import org.apache.commons.net.ftp.FTPReply;

import java.sql.CallableStatement;
import java.sql.Connection;

import oracle.sql.ARRAY;

import com.zte.ismp.common.dao.CommonDao;

import util.DBHandle;
/**
 * <pre>
 * 描述信息:数据批量汇入
 *
 * @author xieyuchun
 * @version 1.0
 *
 * 完成日期:2014-06-13
 * </pre>
 */

public class DataBatchUploadDao extends CommonDao {
    /*
     * 文件入库
     *
     * filePath:文件夹绝对路径
     */
    public void upload (String filePath){
        System.out.println("文件入库");
        DBHandle handler = null;
        Connection con = null;
        CallableStatement cstmt = null; 

        try{

    //数据库连接对象
            handler = this.getHandler();

    //获取数据库连接
            con = handler.getCon();
            
            if(1 == 1){
                String encoding="GBK";

                File folder = new File(filePath);

      //folder.list() 获取文件夹下所有文件名
                String[] fileArray = folder.list();
                for (String fileName : fileArray) {
                    System.out.println(fileName);
                    
                    File file = new File(filePath+"\\"+fileName);
                    fileName = fileName.substring(0, fileName.indexOf("."));
                    
                    // //判断文件是否存在
                    if (file.isFile() && file.exists())
                    {
                        InputStreamReader read = new InputStreamReader(

                        new FileInputStream(file), encoding);

                        BufferedReader bufferedReader = new BufferedReader(read);

                        String lineTxt = null;
                        // 读取txt
                        while ((lineTxt = bufferedReader.readLine()) != null) {
                            System.out.println(lineTxt);
                            cstmt = con.prepareCall("{ call pro_forall_insert(?,?,?) }");
                            cstmt.setObject(1,fileName);
                            cstmt.setObject(2, lineTxt);
                            cstmt.setObject(3, ",");
                            cstmt.execute();
                        }
                        read.close();
                        System.out.println("文件入库完成");
                    } else {

                        System.out.println("找不到指定的文件");
                    }
                }
            }
            
         } catch (Exception e) {
                throw new RuntimeException(e);
            } finally {
                if (null != handler) {
                    handler.release();
            }
         }
    }
}

posted on 2014-06-22 17:42  cc_java  阅读(1283)  评论(0编辑  收藏  举报

导航