นี่คือตัวอย่างง่ายๆ
การคัดลอกรหัสมีดังนี้:
แพ็คเกจ 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 (พา ธ );
// เริ่มต้นอินสแตนซ์ dbfreader ตามสตรีมอินพุตเพื่ออ่านข้อมูลไฟล์ dbf
dbfreader reader = 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 ());
-
Object [] Rowvalues;
// ดึงไฟล์พา ธ ทีละตัวและบันทึก
ในขณะที่ ((rowvalues = reader.nextrecord ())! = null)
-
สำหรับ (int i = 0; i <rowvalues.length; i ++)
-
System.out.println (RowValues [i]);
-
-
-
จับ (ข้อยกเว้น e)
-
E.PrintStackTrace ();
-
ในที่สุด
-
พยายาม{
fis.close ();
} catch (exception e) {}
-
-
โมฆะคงที่สาธารณะ WritedBF (เส้นทางสตริง)
-
OutputStream fos = null;
พยายาม
-
// กำหนดฟิลด์ไฟล์ DBF
dbffield [] ฟิลด์ = ใหม่ dbffield [3];
// กำหนดข้อมูลแต่ละฟิลด์แยกกัน SetFieldName และ SetName ฟังก์ชั่นเดียวกัน
// มันเป็นเพียงแค่ setfieldname ไม่แนะนำให้ใช้อีกต่อไป
ฟิลด์ [0] = ใหม่ dbffield ();
//fields [0.0 เหมือนกัน SetSetFieldName("EMP_CODE ");
ฟิลด์ [0] .setName ("semp_code");
ฟิลด์ [0] .setDatatype (dbffield.field_type_c);
ฟิลด์ [0] .SetFieldLength (10);
ฟิลด์ [1] = ใหม่ dbffield ();
//fields [[1 like.setfieldName("EMP_NAME ");
ฟิลด์ [1] .setName ("EMP_NAME");
ฟิลด์ [1] .setDatatype (dbffield.field_type_c);
ฟิลด์ [1] .SetFieldLength (20);
ฟิลด์ [2] = ใหม่ dbffield ();
//fields [2 เดียวกันกับ SetSetFieldName("Salary ");
ฟิลด์ [2] .setName ("เงินเดือน");
ฟิลด์ [2] .setDatatype (dbffield.field_type_n);
ฟิลด์ [2] .SetFieldLength (12);
ฟิลด์ [2] .SetDecimalcount (2);
// DBFWriter Writer = ใหม่ DBFWriter (ไฟล์ใหม่ (พา ธ ));
// กำหนดอินสแตนซ์ dbfwriter เพื่อเขียนไฟล์ dbf
DBFWriter Writer = new DBFWriter ();
// เขียนข้อมูลฟิลด์ลงในอินสแตนซ์ DBFWriter นั่นคือกำหนดโครงสร้างตาราง
Writer.SetFields (ฟิลด์);
// เขียนบันทึก
Object [] rowdata = วัตถุใหม่ [3];
rowdata [0] = "1000";
Rowdata [1] = "John";
rowdata [2] = ใหม่สองเท่า (5000.00);
Writer.Addrecord (Rowdata);
rowdata = วัตถุใหม่ [3];
rowdata [0] = "1001";
rowdata [1] = "lalit";
rowdata [2] = ใหม่สองครั้ง (3400.00);
Writer.Addrecord (Rowdata);
rowdata = วัตถุใหม่ [3];
rowdata [0] = "1002";
rowdata [1] = "rohit";
rowdata [2] = ใหม่สองครั้ง (7350.00);
Writer.Addrecord (Rowdata);
// กำหนดสตรีมเอาต์พุตและเชื่อมโยงไฟล์
FOS = ใหม่ fileOutputStream (พา ธ );
// เขียนข้อมูล
Writer.write (fos);
//writer.write ();
} catch (ข้อยกเว้น e)
-
E.PrintStackTrace ();
-
ในที่สุด
-
พยายาม{
fos.close ();
} catch (exception e) {}
-
-
โมฆะคงที่สาธารณะหลัก (สตริง [] args) {
String path = "E: //tmp//2//xx.dbf";
พยายาม {
InputStream FIS = ใหม่ FileInputStream (พา ธ );
dbfreader reader = 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 ("ฟิลด์"+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 = วัตถุใหม่ [FieldScount+2];
// ดึงไฟล์พา ธ ทีละตัวและบันทึก
ในขณะที่ ((rowvalues = reader.nextrecord ())! = null)
-
สำหรับ (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 = ใหม่ fileOutputStream (พา ธ );
// เขียนข้อมูล
Writer.write (fos);
System.out.println ("over");
} catch (filenotfoundexception | dbfexception e) {
// todo catch block ที่สร้างอัตโนมัติ
E.PrintStackTrace ();
-
-
-