java對DBF的Memo欄位操作

2021-04-13 10:57:50 字數 1336 閱讀 6904

memo欄位的儲存格式:

/*備註頭記錄  

位元組偏移   說明    

00   -   03   下乙個自由塊的位置1    

04   –   05   未使用    

06   –   07   塊大小(每個塊的位元組數)1    

08   –   511   未使用    

1   儲存整數時,高位位元組在前。    

備註塊標頭與備註文字  

位元組偏移   說明    

00   –   03   塊簽名   1   (指示塊中資料的型別)  

0   –   (字段型別)  

1   –   文字(備註字段型別)    

04   –   07   備註長度   1   (以位元組為單位)    

08   –   n   備註文字(n   =   長度)    

1   儲存整數時,高位位元組在前。     */

構建乙個新的建構函式

public dbfreader( inputstream in, inputstream memo) throws dbfexception catch (ioexception e)

}private void initmemoinputstream() throws ioexception

在nextrecord()方法中,

case 'm':

// todo later

這個位置進行memo欄位處理,加了如下**:

case 'm':

// todo later

// dbf跳過memo欄位

byte b_memoproxy = new byte[ this.header.fieldarray[i].getfieldlength()];

datainputstream.read( b_memoproxy);

// 讀取fpt欄位

int itype = utils.readhighendianint(memoinputstream);

if (itype == 1) else

}break;

此時,完成了memo欄位的讀入,下面附上readhighendianint的**,在utils類中實現

public static int readhighendianint( datainput in)

throws ioexception

return bigendian;

}public static short readhighendianshort( datainput in)

throws ioexception

java匯出DBF的使用

dbffield.field type d 表示date型 dbffield.field type l 表示布林型 dbffield.field type n 表示數字 dbffield.field type c 表示字串 dbffield.field type f 表示浮點型 dbffield.f...

java 反射機制(Field)對類的字段進行操作

設定變數setfield field userinfo.getclass getdeclaredfield name 私有變數set需呼叫此方法 field.setaccessible true 字元型別名稱 string fieldtypename field.gettype get name 暫...

ASP對FoxPro自由表 DBF檔案 的操作

tag aspfoxpro dbf資料庫 一 問題的提出 經常看到網上有朋友問asp對foxpro庫表 dbf 的操作問題,現實中確有許多應用軟體使用dbf表,如何在網路環境中使用這些資料,使很多朋友一籌莫展。本人在乙個小專案中也遇到這個問題,通過查閱資料,多次試驗,初步解決了這個問題,寫出來與大家...