Berikut adalah contoh sederhana
Salinan kode adalah sebagai berikut:
paket com.cramc;
impor java.io.fileInputStream;
impor java.io.filenotfoundException;
impor java.io.fileoutputStream;
impor java.io.inputstream;
impor java.io.outputStream;
impor com.linuxense.javadbf.dbfexception;
impor com.linuxense.javadbf.dbffield;
impor com.linuxense.javadbf.dbFreader;
impor com.linuxense.javadbf.dbfwriter;
kelas publik rwdbf {
public static void readdbf (jalur string)
{
Inputstream fis = null;
mencoba
{
// Baca aliran input file
fis = FileInputStream baru (path);
// Inisialisasi instance DBFreader sesuai dengan aliran input untuk membaca informasi file DBF
DBFreader Reader = DBFreader baru (FIS);
// Hubungi DBFreader untuk mendapatkan jumlah bidang di file path ke metode instance
int fieldscount = reader.getFieldCount ();
System.out.println ("Jumlah bidang:"+FieldsCount);
// Ambil informasi bidang
untuk (int i = 0; i <fieldscount; i ++)
{
Dbffield field = reader.getfield (i);
System.out.println (field.getName ());
}
Objek [] rowValues;
// Ambil file path satu per satu dan rekam
while ((rowValues = reader.nextrecord ())! = null)
{
untuk (int i = 0; i <rowValues.length; i ++)
{
System.out.println (rowValues [i]);
}
}
}
Tangkap (pengecualian e)
{
e.printstacktrace ();
}
Akhirnya
{
mencoba{
fis.close ();
} catch (Exception e) {}
}
}
public static void writedBF (jalur string)
{
OutputStream fos = null;
mencoba
{
// Tentukan bidang file DBF
Dbffield [] bidang = dbffield baru [3];
// Tentukan setiap informasi bidang secara terpisah, setFieldName dan setName berfungsi sama.
// Hanya saja SetfieldName tidak lagi disarankan untuk digunakan
bidang [0] = dbffield baru ();
//fieldscaya.setfieldname("emp_code ");
bidang [0] .setName ("semp_code");
bidang [0] .setDataType (dbffield.field_type_c);
bidang [0] .setFieldLength (10);
bidang [1] = dbffield baru ();
//fieldscaya.
bidang [1] .setName ("emp_name");
bidang [1] .setDataType (dbffield.field_type_c);
bidang [1] .setFieldLength (20);
bidang [2] = dbffield baru ();
//fieldscaya.setfieldname("salary ");
bidang [2] .setname ("gaji");
bidang [2] .setDataType (dbffield.field_type_n);
bidang [2] .setFieldLength (12);
bidang [2] .setDecimalcount (2);
// dbfwriter writer = dbfwriter baru (file baru (path));
// Tentukan contoh DBFWriter untuk menulis file DBF
DBFWriter Writer = dbfwriter baru ();
// Tulis informasi bidang ke dalam instance dbfwriter, yaitu, tentukan struktur tabel
writer.setFields (bidang);
// Tulis catatan
Objek [] rowData = objek baru [3];
rowData [0] = "1000";
rowData [1] = "John";
rowData [2] = Double baru (5000.00);
writer.addrecord (RowData);
rowData = objek baru [3];
rowData [0] = "1001";
rowData [1] = "lalit";
rowData [2] = double baru (3400.00);
writer.addrecord (RowData);
rowData = objek baru [3];
rowData [0] = "1002";
rowData [1] = "rohit";
rowData [2] = Double baru (7350.00);
writer.addrecord (RowData);
// Tentukan aliran output dan kaitkan file
fos = FileOutputStream baru (path);
// Tulis data
writer.write (fos);
//writer.write ();
} tangkap (pengecualian e)
{
e.printstacktrace ();
}
Akhirnya
{
mencoba{
fos.close ();
} catch (Exception e) {}
}
}
public static void main (string [] args) {
String path = "e: //tmp//2//xx.dbf";
mencoba {
InputStream fis = new FileInputStream (path);
DBFreader Reader = DBFreader baru (FIS);
int fieldscount = reader.getFieldCount ();
System.out.println ("Jumlah bidang:"+FieldsCount);
Dbffield [] df = dbffield baru [fieldscount+2];
untuk (int i = 0; i <fieldscount; i ++)
{
df [i] = reader.getfield (i);
System.out.println ("Field"+i+":"+df [i] .getName ());
}
df [fieldscount] = dbffield baru ();
df [fieldscount] .setName ("add1");
df [fieldscount] .setDataType (dbffield.field_type_c);
df [fieldscount] .setFieldLength (10);
df [fieldscount+1] = dbffield baru ();
df [fieldscount+1] .setName ("add2");
df [fieldscount+1] .setDataType (dbffield.field_type_c);
df [fieldscount+1] .setFieldLength (10);
DBFWriter Writer = dbfwriter baru ();
writer.setfields (df);
Objek [] rowValues;
Objek [] rowValues1 = objek baru [fieldscount+2];
// Ambil file path satu per satu dan rekam
while ((rowValues = reader.nextrecord ())! = null)
{
untuk (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);
// Tulis data
writer.write (fos);
System.out.println ("over");
} catch (FileNoTFoundException | dbfexception e) {
// TODO Blok tangkapan yang dihasilkan otomatis
e.printstacktrace ();
}
}
}