هنا مثال بسيط
نسخة الكود كما يلي:
حزمة com.cramc ؛
استيراد java.io.fileInputStream ؛
استيراد java.io.filenotfoundException ؛
استيراد java.io.fileOutputStream ؛
استيراد java.io.inputstream ؛
استيراد java.io.outputStream ؛
استيراد com.linuxense.javadbf.dbfexception ؛
استيراد com.linuxense.javadbf.dbffield ؛
استيراد com.linuxense.javadbf.dbfreader ؛
استيراد com.linuxense.javadbf.dbfwriter ؛
الطبقة العامة rwdbf {
باطل ثابت عام readdbf (مسار السلسلة)
{
inputStream Fis = NULL ؛
يحاول
{
// اقرأ دفق الإدخال للملف
FIS = جديد fileInputStream (path) ؛
// تهيئة مثيل DBFREADER وفقًا لدفق الإدخال لقراءة معلومات ملف DBF
dbfreader reader = new dbfreader (fis) ؛
// اتصل بـ DBFREADER للحصول على عدد الحقول في ملف المسار إلى طريقة المثيل
int fieldscount = reader.getFieldCount () ؛
system.out.println ("عدد الحقول:"+fieldscount) ؛
// جلب معلومات الحقل
لـ (int i = 0 ؛ i <fieldscount ؛ i ++)
{
dbffield field = reader.getfield (i) ؛
system.out.println (field.getName ()) ؛
}
كائن [] القيم الصاخبة ؛
// جلب ملف المسار واحدًا تلو الآخر والسجل
بينما ((rowvalues = reader.nextrecord ())! = null)
{
لـ (int i = 0 ؛ i <rowvalues.length ؛ i ++)
{
System.out.println (RowValues [i]) ؛
}
}
}
الصيد (استثناء ه)
{
E.PrintStackTrace () ؛
}
أخيراً
{
يحاول{
fis.close () ؛
} catch (استثناء e) {}
}
}
الفراغ الثابت العام writedbf (مسار السلسلة)
{
OutputStream FOS = NULL ؛
يحاول
{
// تحديد حقول ملفات DBF
dbffield [] الحقول = dbffield جديد [3] ؛
// تحديد كل معلومات حقل بشكل منفصل ، وظيفة setFieldName و setName هي نفسها.
// إنه مجرد أن يكون SetFieldName يوصى باستخدامه
الحقول [0] = جديد dbffield () ؛
//fields budap0/201.setFieldName("emp_code ") ؛
الحقول [0] .SetName ("semp_code") ؛
الحقول [0] .SetDatatyPe (dbffield.field_type_c) ؛
الحقول [0] .SetFieldLength (10) ؛
الحقول [1] = جديد dbffield () ؛
//fields budap1.
الحقول [1] .SetName ("emp_name") ؛
الحقول [1] .setDatatyPe (dbffield.field_type_c) ؛
الحقول [1] .SetFieldLength (20) ؛
الحقول [2] = جديد dbffield () ؛
//fields budap2/201.setFieldName("salary ") ؛
الحقول [2] .SetName ("الراتب") ؛
الحقول [2] .setDatatyPe (dbffield.field_type_n) ؛
الحقول [2] .SetFieldLength (12) ؛
الحقول [2] .SetDecimalCount (2) ؛
// dbfwriter writer = new DBFWriter (ملف جديد (مسار)) ؛
// تحديد مثيل DBFWriter لكتابة ملفات DBF
DBFWriter Writer = New DBFWriter () ؛
// اكتب معلومات الحقل في مثيل DBFWriter ، أي تحديد بنية الجدول
الكاتب.
// كتابة السجلات
Object [] ROWDATA = كائن جديد [3] ؛
Rowdata [0] = "1000" ؛
Rowdata [1] = "John" ؛
Rowdata [2] = New Double (5000.00) ؛
الكاتب. addrecord (Rowdata) ؛
ROWDATA = كائن جديد [3] ؛
Rowdata [0] = "1001" ؛
Rowdata [1] = "lalit" ؛
Rowdata [2] = New Double (3400.00) ؛
الكاتب. addrecord (Rowdata) ؛
ROWDATA = كائن جديد [3] ؛
Rowdata [0] = "1002" ؛
Rowdata [1] = "Rohit" ؛
Rowdata [2] = New Double (7350.00) ؛
الكاتب. addrecord (Rowdata) ؛
// تحديد دفق الإخراج وربط ملف
FOS = جديد fileOutputStream (path) ؛
// كتابة البيانات
الكاتب. write (FOS) ؛
//writer.write () ؛
} الصيد (استثناء هـ)
{
E.PrintStackTrace () ؛
}
أخيراً
{
يحاول{
fos.close () ؛
} catch (استثناء e) {}
}
}
الفراغ الثابت العام الرئيسي (سلسلة [] args) {
string path = "e: //tmp//2//xx.dbf" ؛
يحاول {
inputStream fis = جديد fileInputStream (path) ؛
dbfreader reader = new dbfreader (fis) ؛
int fieldscount = reader.getFieldCount () ؛
system.out.println ("عدد الحقول:"+fieldscount) ؛
dbffield [] df = new dbffield [fieldscount+2] ؛
لـ (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 () ؛
الكاتب.
كائن [] القيم الصاخبة ؛
Object [] rowvalues1 = كائن جديد [FieldScount+2] ؛
// جلب ملف المسار واحدًا تلو الآخر والسجل
بينما ((rowvalues = reader.nextrecord ())! = null)
{
لـ (int i = 0 ؛ i <fieldscount ؛ i ++) {
rowvalues1 [i] = rowvalues [i] ؛
}
ROWVALUES1 [FieldScount] = "X" ؛
ROWVALUES1 [FieldScount+1] = "XX" ؛
الكاتب. addrecord (Rowvalues1) ؛
}
path = "e: //tmp//2//test2.dbf" ؛
OutputStream FOS = FileOutputStream جديد (PATH) ؛
// كتابة البيانات
الكاتب. write (FOS) ؛
System.out.println ("Over") ؛
} catch (fileNotfoundException | dbfexception e) {
// TODO AUTO CATCH BLOCK
E.PrintStackTrace () ؛
}
}
}