java读取dbf文件

1.下载DBFReader jar包

2.实例代码

package service;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.InputStream;
import java.io.UnsupportedEncodingException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.HashSet;
import java.util.Set;

import util.DBUtil;

import com.linuxense.javadbf.DBFException;
import com.linuxense.javadbf.DBFReader;

public class DBFUtil{
    private static final String InsertSql = "insert into V_SSMZ (YE,NO,DP,E0,E1,E2,E3,E4,E5,E6,E7,E8,E9,E10,E11,E12,E13,E14,E15,E16,E17,E18,E19) values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
    private static final String UpdateSql = "update V_SSMZ set ye=?,no=?,dp=?,e0=?,e1=?,e2=?,e3=?,e4=?,e5=?,e6=?,e7=?,e8=?,e9=?,e10=?,e11=?,e12=?,e13=?,e14=?,e15=?,e16=?,e17=?,e18=?,e19=? where ye = ? and no= ?";

    public static void main (String[] args){
        DBFUtil sdf = new DBFUtil ();
        try{
            sdf.DBFReader ("V_SSMZ", "D:\\常用软件\\jar包\\ssbase.DBF");
        }catch (SQLException e){
            e.printStackTrace();
        }
    }
    public void DBFReader(String tableName,String filePath) throws SQLException{
        Set<String> map = new HashSet <String> ();
        DBFReader reader=null;//从dbf中获取内容
        Connection con = null;
        PreparedStatement Insertstat = null;
        PreparedStatement Updatestat = null;
        InputStream in;
        try{
            in = new FileInputStream(new File(filePath));
            reader=new DBFReader(in);//将文件从文件流中读入。  

            Object[] rowObjects = null;

            con = DBUtil.getPlantDBConnection ();
            Insertstat = con.prepareStatement (InsertSql);
            Updatestat = con.prepareStatement (UpdateSql);
            while ((rowObjects = reader.nextRecord()) != null) {
                String ye = new String(rowObjects[0].toString ().trim ().getBytes ("ISO-8859-1"),"GBK");
                String no = new String(rowObjects[1].toString ().trim ().getBytes ("ISO-8859-1"),"GBK");
                if(map.contains (ye+"_"+no)){
                    for(int i=0;i<rowObjects.length;i++){
                        String value = rowObjects[i]==null?"":new String(rowObjects[i].toString ().trim ().getBytes ("ISO-8859-1"),"GBK");
                        Updatestat.setString (i+1, value);
                    }
                    Updatestat.setString (rowObjects.length+1, new String(rowObjects[0].toString ().trim ().getBytes ("ISO-8859-1"),"GBK"));
                    Updatestat.setString (rowObjects.length+2, new String(rowObjects[1].toString ().trim ().getBytes ("ISO-8859-1"),"GBK"));

                    Updatestat.addBatch ();
                }else{
                    for(int i=0;i<rowObjects.length;i++){
                        String value = rowObjects[i]==null?"":new String(rowObjects[i].toString ().trim ().getBytes ("ISO-8859-1"),"GBK");
                        Insertstat.setString (i+1, value);
                    }
                    Insertstat.addBatch ();
                }
                map.add (ye+"_"+no);
            }
            Insertstat.executeBatch ();
            Updatestat.executeBatch ();
        }catch (FileNotFoundException e){
            e.printStackTrace();
        }catch (DBFException e){
            e.printStackTrace();
        }catch (SQLException e){
            e.printStackTrace();
        }catch (UnsupportedEncodingException e){
            e.printStackTrace();
        }finally{
            Updatestat.close ();
            Updatestat.close ();
            con.close ();
        }
    }
}
时间: 2024-08-02 00:32:14

java读取dbf文件的相关文章

java解析dbf文件

dbf文件, 不能直接另存为excel文件, 会丢数据! 需要将dbf数据存储到数据库中, 在从数据库中将数据导出成excel. import java.io.File; import java.io.FileInputStream; import java.io.InputStream; import java.sql.Connection; import java.sql.PreparedStatement; import java.util.ArrayList; import java.u

Java读取XML文件(1)

Java读取XML文件(1) ReadXml.java package Read; import java.io.IOException; import java.util.ArrayList; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.ParserConfigurationException; import

java读取大文件 超大文件的几种方法

计算机技术学习用书: 编程技术资料:http://myitbook.taobao.com/  电脑技术群:291644908    用技术改变人生,欢迎您的加入 java 读取一个巨大的文本文件既能保证内存不溢出又能保证性能 2010-09-25 11:18:50|  分类: 默认分类 |字号 订阅 import java.io.BufferedReader; import java.io.File; import java.io.FileReader; import java.io.Rando

java读取 500M 以上文件,java读取大文件

java 读取txt,java读取大文件 设置缓存大小BUFFER_SIZE ,Config.tempdatafile是文件地址 来源博客http://yijianfengvip.blog.163.com/blog/static/175273432201191354043148/ package com.yjf.util;import java.io.File;import java.io.RandomAccessFile;import java.nio.MappedByteBuffer;imp

Java编程:使用Java读取Excel文件内容

微软的ODBC驱动程序把工作表中的第一行作为列名(译者注:即字段名),工作表名作为数据库表名. 要通过JDBC访问工作表,我们还必须创建一个新的ODBC数据源,在Windows 2000系统上创建数据源的过程如下: 进入“控制面板” --> “管理工具” --> “数据源(ODBC)”,(译者注:打开后选择系统DSN),点击添加,在弹出窗口中选择“Driver do Microsoft Excel(*.xls)” 然后在数据源名处输入一个名字myexcel(译者注:相当于数据库名),然后点击“

Java读取Properties文件的六种方法

使用J2SE API读取Properties文件的六种方法 1.使用java.util.Properties类的load()方法 示例: InputStream in = lnew BufferedInputStream(new FileInputStream(name)); Properties p = new Properties(); p.load(in); 2.使用java.util.ResourceBundle类的getBundle()方法 示例: ResourceBundle rb

java读取TXT文件的方法

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

java把dbf文件写入远程2003服务器

重要的事情说三遍,有木有,java把dbf文件写入远程2003服务器,第一遍,第二遍,第三遍-够了,王二,还有完没有,赶紧点 需求 今天早晨,王二(也就是我)接到一个需求: 把行情的dbf库写入到远程windows server2003上! 分析 之前,我就写过一篇Java操作DBF文件数据库,但怎么把dbf写入到远程服务器上,这好像需要点什么. 于是我就去问度娘啊,看看有没有什么封装好的jar包之类的,好拿来用用. 折腾了一会关键字,终于找到了一篇Java读写Windows共享文件夹,感谢博主

转载:java基础学习总结——java读取properties文件总结

java基础学习总结--java读取properties文件总结 一.java读取properties文件总结 在java项目中,操作properties文件是经常要做的,因为很多的配置信息都会写在properties文件中,这里主要是总结使用getResourceAsStream方法和InputStream流去读取properties文件,使用getResourceAsStream方法去读取properties文件时需要特别注意properties文件路径的写法,测试项目如下: 1.1.项目的