欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時(shí)間:2014年01月28日 12:05:17   作者:  
這篇文章主要介紹了java通過(guò)javadbf讀取和生成DBF文件的方法,大家參考使用吧

以下是簡(jiǎn)單示例

復(fù)制代碼 代碼如下:

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);
            //根據(jù)輸入流初始化一個(gè)DBFReader實(shí)例,用來(lái)讀取DBF文件信息
            DBFReader reader = new DBFReader(fis); 
            //調(diào)用DBFReader對(duì)實(shí)例方法得到path文件中字段的個(gè)數(shù)
            int fieldsCount = reader.getFieldCount();
            System.out.println("字段數(shù):"+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];
      //分別定義各個(gè)字段信息,setFieldName和setName作用相同,
      //只是setFieldName已經(jīng)不建議使用  
      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實(shí)例用來(lái)寫(xiě)DBF文件  
      DBFWriter writer = new DBFWriter();
      //把字段信息寫(xiě)入DBFWriter實(shí)例,即定義表結(jié)構(gòu) 
      writer.setFields(fields);  
      //一條條的寫(xiě)入記錄  
      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);  

      //定義輸出流,并關(guān)聯(lián)的一個(gè)文件  
      fos = new FileOutputStream(path);
      //寫(xiě)入數(shù)據(jù)  
      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("字段數(shù):"+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);
          //寫(xiě)入數(shù)據(jù)  
          writer.write(fos);  

          System.out.println("OVER");

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

}

相關(guān)文章

  • JavaWeb開(kāi)發(fā)入門(mén)第一篇必備知識(shí)講解

    JavaWeb開(kāi)發(fā)入門(mén)第一篇必備知識(shí)講解

    JavaWeb開(kāi)發(fā)入門(mén)第一篇主要內(nèi)容介紹的是必備知識(shí)、基礎(chǔ)知識(shí)、搭建JavaWeb應(yīng)用開(kāi)發(fā)環(huán)境,感興趣的小伙伴們可以參考一下
    2016-04-04
  • java基于JDBC連接Oracle 11g Release2實(shí)例分析

    java基于JDBC連接Oracle 11g Release2實(shí)例分析

    這篇文章主要介紹了java基于JDBC連接Oracle 11g Release2的方法,實(shí)例分析了JDBC連接Oracle 11g Release2容易出現(xiàn)的異常與解決方法,需要的朋友可以參考下
    2015-06-06
  • 解決java.util.zip.ZipException: Not in GZIP format報(bào)錯(cuò)問(wèn)題

    解決java.util.zip.ZipException: Not in GZIP&nbs

    這篇文章主要介紹了解決java.util.zip.ZipException: Not in GZIP format報(bào)錯(cuò)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • Java 程序員必備的 Intellij IDEA 插件

    Java 程序員必備的 Intellij IDEA 插件

    java插件十分方便實(shí)用,以下是我用過(guò)不錯(cuò)的Intellij插件,當(dāng)然還有很多插件也都不錯(cuò),下面將我覺(jué)得不錯(cuò)的插件分享給大家,希望能幫到大家
    2018-09-09
  • SpringAOP如何修改請(qǐng)求參數(shù)列表

    SpringAOP如何修改請(qǐng)求參數(shù)列表

    這篇文章主要介紹了SpringAOP如何修改請(qǐng)求參數(shù)列表問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • Java?中?Class?Path?和?Package的使用詳解

    Java?中?Class?Path?和?Package的使用詳解

    這篇文章主要介紹了Java?中?Class?Path和Package的使用詳解,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的朋友可以參考一下
    2022-08-08
  • Elasticsearch 基礎(chǔ)介紹及索引原理分析

    Elasticsearch 基礎(chǔ)介紹及索引原理分析

    這篇文章主要介紹了Elasticsearch 基礎(chǔ)介紹及索引原理分析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-07-07
  • zookeeper服務(wù)優(yōu)化的一些建議

    zookeeper服務(wù)優(yōu)化的一些建議

    今天小編就為大家分享一篇關(guān)于zookeeper服務(wù)優(yōu)化的一些建議,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2019-03-03
  • Spring 定時(shí)任務(wù)@Scheduled 注解中的 Cron 表達(dá)式詳解

    Spring 定時(shí)任務(wù)@Scheduled 注解中的 Cron 表達(dá)式詳解

    Cron 表達(dá)式是一種用于定義定時(shí)任務(wù)觸發(fā)時(shí)間的字符串表示形式,它由七個(gè)字段組成,分別表示秒、分鐘、小時(shí)、日期、月份、星期和年份,這篇文章主要介紹了Spring 定時(shí)任務(wù)@Scheduled 注解中的 Cron 表達(dá)式,需要的朋友可以參考下
    2023-07-07
  • SpringBoot整合mybatis結(jié)合pageHelper插件實(shí)現(xiàn)分頁(yè)

    SpringBoot整合mybatis結(jié)合pageHelper插件實(shí)現(xiàn)分頁(yè)

    在本篇文章里小編給大家整理的是關(guān)于SpringBoot整合mybatis使用pageHelper插件進(jìn)行分頁(yè)操作相關(guān)知識(shí)點(diǎn),需要的朋友們學(xué)習(xí)下。
    2020-02-02

最新評(píng)論