注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

午夜阳光

 
 
 

日志

 
 

java读写DBF文件(5)  

2012-02-12 16:00:47|  分类: java |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
  由于业务的需要,开发项目的时候,客户要求数据导入/导出,文件类类型为DBF文件,在网上找了一些相关源码,虽然可以完成DBF读写,但不足的是,导出文件时不支持中文字段名,字段名乱码。后经我对程序的修改,可支持中方字段名,字段名长度中5位,英文10,也可以中英文混用。下边将相关源码贴出来,供大家学习讨论,并附一读写简单例子,一共包括四个DBF读写类和一例子类。由于源码太长,不能一篇文章发完,将分成五部分。

          第一部分:DBFReader.java

          第二部分:DBFWriter.java

          第三部分:JDBField.java

          第四部分:JDBFException.java

          第五部分:我写的测试例子。  

          不明白的可以给我留言啊。

/**
* DBF文件读写简单例子
*
* @author Eric     2007-6-22
* @version 1.0
*/
public class mytest {

/**
     * 读DBF文件
     */
private static void readDBF()
{
     try
     {
      System.out.println("正在读取文件!");
   
      DBFReader dbfreader = new DBFReader("d:/aa.dbf");
      for(int b = 0;b<dbfreader.getFieldCount();b++)
      {
       if(b>0)
        System.out.print(",");
       System.out.print(dbfreader.getField(b).getName().trim().toUpperCase());
    
       if(b == (dbfreader.getFieldCount()-1))
        System.out.print("\n");
    
      }
      for(int i = 0;dbfreader.hasNextRecord();i++)
      {
       String aobj[] = dbfreader.nextRecordString();
       for(int b = 0;b<dbfreader.getFieldCount();b++)
       {
        if(b>0)
         System.out.print(",");
        System.out.print(aobj[b].trim());
     
        if(b == (dbfreader.getFieldCount()-1))
         System.out.print("\n");
     
       }
      }
      System.out.println("读取文件成功!");
     }
     catch(Exception e)
     {
      e.printStackTrace();
     }

}

/**
     * 写DBF文件
     */
private static void writeDBF()
{
  
     try {
      JDBField ajdbfield[] = new JDBField[4];
      ajdbfield[0] = new JDBField("字段1",'C',20,0);
      ajdbfield[1] = new JDBField("字段2",'C',20,0);
      ajdbfield[2] = new JDBField("filed3",'C',20,0);
      ajdbfield[3] = new JDBField("filed4",'C',20,0);
   
      System.out.println("正在生成DBF字段!");
   
      DBFWriter dbfwriter = new DBFWriter("d:/aa.dbf", ajdbfield); /*生成 DBF 文件*/     
      Object aobj[] = new Object[4];
      aobj[0]="1";
      aobj[1]="1";
      aobj[2]="1";
      aobj[3]="1";
   
      System.out.println("正在写入数据!");
   
      dbfwriter.addRecord(aobj);
      dbfwriter.close();
   
      System.out.println("执行成功!");     
     } catch (JDBFException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
     }

}

public static void main(String[] args)
{
     writeDBF();
     readDBF();
}

  评论这张
 
阅读(2545)| 评论(2)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018