一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服務器之家 - 編程語言 - JAVA教程 - java解析dbf之通過javadbf包生成和讀取dbf文件

java解析dbf之通過javadbf包生成和讀取dbf文件

2019-11-04 14:19java教程網 JAVA教程

這篇文章主要介紹了java通過javadbf讀取和生成DBF文件的方法,大家參考使用吧

以下是簡單示例

 

復制代碼代碼如下:


package com.cramc;

 

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;

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

public class Rwdbf {

 public static void readDBF(String path)   

    {   

       InputStream fis = null;
        try 
        {  
            //讀取文件的輸入流 
            fis  = new FileInputStream(path);
            //根據輸入流初始化一個DBFReader實例,用來讀取DBF文件信息
            DBFReader reader = new DBFReader(fis);  
            //調用DBFReader對實例方法得到path文件中字段的個數 
            int fieldsCount = reader.getFieldCount();
            System.out.println("字段數:"+fieldsCount);
            //取出字段信息   
            for( int i=0; i<fieldsCount; i++)    
            {   
              DBFField field = reader.getField(i);
              System.out.println(field.getName());
            }   
            Object[] rowValues;   
            //一條條取出path文件中記錄   
            while((rowValues = reader.nextRecord()) != null) 
            {   
              for( int i=0; i<rowValues.length; i++) 
              {   
                System.out.println(rowValues[i]); 
              }   
            }   
          }   
          catch(Exception e)    
          {   
          e.printStackTrace();  
          }  
          finally  
          {   
          try{   
               fis.close(); 
          }catch(Exception e){}  
          } 
    }   

 

 public static void writeDBF(String path)
 {

  OutputStream fos = null;
  try  
  {   
      //定義DBF文件字段   
      DBFField[] fields = new DBFField[3]; 
      //分別定義各個字段信息,setFieldName和setName作用相同, 
      //只是setFieldName已經不建議使用   
      fields[0] = new DBFField();   
      //fields[0].setFieldName("emp_code"); 
      fields[0].setName("semp_code");   
      fields[0].setDataType(DBFField.FIELD_TYPE_C);   
      fields[0].setFieldLength(10);   

      fields[1] = new DBFField();   
      //fields[1].setFieldName("emp_name"); 
      fields[1].setName("emp_name");   
      fields[1].setDataType(DBFField.FIELD_TYPE_C);   
      fields[1].setFieldLength(20);   

      fields[2] = new DBFField();   
      //fields[2].setFieldName("salary"); 
      fields[2].setName("salary");  
      fields[2].setDataType(DBFField.FIELD_TYPE_N);   
      fields[2].setFieldLength(12);   
      fields[2].setDecimalCount(2);   

      //DBFWriter writer = new DBFWriter(new File(path));   

      //定義DBFWriter實例用來寫DBF文件   
      DBFWriter writer = new DBFWriter(); 
      //把字段信息寫入DBFWriter實例,即定義表結構  
      writer.setFields(fields);   
      //一條條的寫入記錄   
      Object[] rowData = new Object[3]; 
      rowData[0] = "1000";   
      rowData[1] = "John";   
      rowData[2] = new Double(5000.00);
      writer.addRecord(rowData);   

      rowData = new Object[3];  
      rowData[0] = "1001";  
      rowData[1] = "Lalit"; 
      rowData[2] = new Double(3400.00);   
      writer.addRecord(rowData);   

      rowData = new Object[3];
      rowData[0] = "1002";   
      rowData[1] = "Rohit";  
      rowData[2] = new Double(7350.00);  
      writer.addRecord(rowData);   

      //定義輸出流,并關聯的一個文件   
      fos = new FileOutputStream(path);
      //寫入數據   
      writer.write(fos);   

      //writer.write();  
  }catch(Exception e)   
  {   
      e.printStackTrace();   
  }   
  finally  
  {   
      try{   
      fos.close();
      }catch(Exception e){}
  }
 }

 public static void main(String[] args){
  String path ="E:\\tmp\\2\\xx.dbf";
  try {
   InputStream fis = new FileInputStream(path);
   DBFReader reader = new DBFReader(fis); 
   int fieldsCount = reader.getFieldCount();
            System.out.println("字段數:"+fieldsCount);

            DBFField[] df = new DBFField[fieldsCount+2];
            for( int i=0; i<fieldsCount; i++)    
            {   
              df[i] = reader.getField(i);
              System.out.println("field"+i+":"+df[i].getName());
            }
            df[fieldsCount] = new DBFField();
            df[fieldsCount].setName("add1");
            df[fieldsCount].setDataType(DBFField.FIELD_TYPE_C);
            df[fieldsCount].setFieldLength(10);
            df[fieldsCount+1] = new DBFField();
            df[fieldsCount+1].setName("add2");
            df[fieldsCount+1].setDataType(DBFField.FIELD_TYPE_C);
            df[fieldsCount+1].setFieldLength(10);

            DBFWriter writer = new DBFWriter();
            writer.setFields(df);

            Object[] rowValues;
            Object[] rowValues1 = new Object[fieldsCount+2];
            //一條條取出path文件中記錄   
            while((rowValues = reader.nextRecord()) != null) 
            { 
              for(int i=0;i<fieldsCount;i++){
               rowValues1[i] = rowValues[i];
              }
              rowValues1[fieldsCount]="x";
              rowValues1[fieldsCount+1]="xx";
              writer.addRecord(rowValues1);
            } 

            
            path ="E:\\tmp\\2\\test2.dbf";
            OutputStream fos = new FileOutputStream(path);
          //寫入數據   
          writer.write(fos);   

          System.out.println("OVER");

            
  } catch (FileNotFoundException | DBFException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
 }

}

 

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: np小说h| 亚洲精品久久久久69影院 | 四虎成人免费观看在线网址 | 久久中文字幕亚洲 | 娇妻与老头绿文小说系列 | 国产伦久视频免费观看视频 | 欧美18一19性高清hd4k | 白丝校花被扒开双腿喷水小说 | 亚洲国产AV无码综合在线 | 欧美日韩中文国产一区 | 久久亚洲网站 | 久久久影院亚洲精品 | 国产伦精品一区二区三区免费迷 | 人人澡 人人澡碰人人看软件 | 俄罗斯一级成人毛片 | 午夜影院免费观看视频 | 国产国语videosex另类 | 激情三级做爰在线观看激情 | 国产精品一级视频 | 日韩性事 | 卫生间被教官做好爽HH视频 | 全彩孕交漫画福利啪啪吧 | 狠狠色综合久久婷婷 | 色愉拍亚洲偷自拍 | 欧美一区二区三区在线观看免费 | 国产综合久久久久 | 成人一区二区免费中文字幕 | 91国语精品自产拍在线观看一 | 国产卡一卡二卡三乱码手机 | 亚洲第一二三四区 | 亚州笫一色惰网站 | 黑人巨| 国产精品日韩欧美在线 | 日本视频在线观看 | 日本一卡二卡3卡四卡网站精品 | 女子监狱第二季在线观看免费完整版 | 国产亚洲精品精品国产亚洲综合 | 日韩欧美一区二区三区免费看 | 俄罗斯烧性春三级k8播放 | 国产一区二区在线看 | 大奶妈咪女教师 |