- 我现在需要给一个DBF文件中添加数据,DBF中有格式,所以没法重新生成一个新的DBF.想以这个模板来新增数据到DBF中
- 试过writer.setFields(fields);定义表结构并插入数据,然而生成的DBF文件显示头部错误,试过new一个模板文件copy了一份,再读新生成的这个文件,并添加数据入其中,数据插入失败,文件也未成功.
- 此处贴代码:
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import com.linuxense.javadbf.DBFWriter;
public class writeDBF {
public static void copyDBF(File source, File dest) {
InputStream in = null;
OutputStream out = null;
try {
in = new FileInputStream(source);
out = new FileOutputStream(dest);
byte[] buf = new byte[1024];
int bytesRead;
while ((bytesRead = in.read(buf)) > 0) {
out.write(buf, 0, bytesRead);
}
} catch(Exception e){
e.printStackTrace();
}finally {
try {
in.close();
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
public static void writeDBF(File dest) {
DBFWriter writer;
try {
writer = new DBFWriter(dest);
Object[] rowData = new Object[8];
rowData[0] = "1";
rowData[1] = "1";
rowData[2] = null;
rowData[3] = null;
rowData[4] = null;
rowData[5] = null;
rowData[6] = null;
rowData[7] = null;
writer.addRecord(rowData);
OutputStream fos = new FileOutputStream(dest);
writer.write(fos);
} catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
File source = new File("D:/java/ZJRMYEK.DBF");
File dest = new File("D:/java/aaa.DBF");
writeDBF.copyDBF(source,dest);
writeDBF.writeDBF(dest);
}
}