我使用文档中的测试用例写入dbf文件:
package expdbf; import com.linuxense.javadbf.*;
import java.io.*; public class DBFWriterTest { public static void main( String args[])
throws DBFException, IOException { // let us create field definitions first
// we will go for 3 fields
//
DBFField fields[] = new DBFField[ 3]; fields[0] = new DBFField();
fields[0].setName( "emp_code");
fields[0].setDataType( DBFField.FIELD_TYPE_C);
fields[0].setFieldLength( 10); fields[1] = new DBFField();
fields[1].setName( "emp_name");
fields[1].setDataType( DBFField.FIELD_TYPE_C);
fields[1].setFieldLength(20); fields[2] = new DBFField();
fields[2].setName( "salary");
fields[2].setDataType( DBFField.FIELD_TYPE_N);
fields[2].setFieldLength( 12);
fields[2].setDecimalCount( 2); DBFWriter writer = new DBFWriter();
writer.setCharactersetName("GBK");
writer.setFields( fields); // now populate DBFWriter
// Object rowData[] = new Object[3];
rowData[0] = "1000";
rowData[1] = "一二三四五六";
rowData[2] = new Double( 5000.00); writer.addRecord( rowData); rowData = new Object[3];
rowData[0] = "1001";
rowData[1] = "一二三四五六";
rowData[2] = new Double( 3400.00); writer.addRecord( rowData); rowData = new Object[3];
rowData[0] = "1002";
rowData[1] = "一二三四五六";
rowData[2] = new Double( 7350.00); writer.addRecord( rowData); FileOutputStream fos = new FileOutputStream("E:\\testdbf.dbf");
writer.write( fos);
fos.close();
}
}
开始时运行查看dbf文件,里面的中文都是乱码。后来加入了writer.setCharactersetName("GBK")后中文倒是正常显示了,但是文字都被截断了。"一二三四五六"在dbf文件中都只写入了"一二三"。 请大家帮帮忙,这个怎么样解决啊?
package expdbf; import com.linuxense.javadbf.*;
import java.io.*; public class DBFWriterTest { public static void main( String args[])
throws DBFException, IOException { // let us create field definitions first
// we will go for 3 fields
//
DBFField fields[] = new DBFField[ 3]; fields[0] = new DBFField();
fields[0].setName( "emp_code");
fields[0].setDataType( DBFField.FIELD_TYPE_C);
fields[0].setFieldLength( 10); fields[1] = new DBFField();
fields[1].setName( "emp_name");
fields[1].setDataType( DBFField.FIELD_TYPE_C);
fields[1].setFieldLength(20); fields[2] = new DBFField();
fields[2].setName( "salary");
fields[2].setDataType( DBFField.FIELD_TYPE_N);
fields[2].setFieldLength( 12);
fields[2].setDecimalCount( 2); DBFWriter writer = new DBFWriter();
writer.setCharactersetName("GBK");
writer.setFields( fields); // now populate DBFWriter
// Object rowData[] = new Object[3];
rowData[0] = "1000";
rowData[1] = "一二三四五六";
rowData[2] = new Double( 5000.00); writer.addRecord( rowData); rowData = new Object[3];
rowData[0] = "1001";
rowData[1] = "一二三四五六";
rowData[2] = new Double( 3400.00); writer.addRecord( rowData); rowData = new Object[3];
rowData[0] = "1002";
rowData[1] = "一二三四五六";
rowData[2] = new Double( 7350.00); writer.addRecord( rowData); FileOutputStream fos = new FileOutputStream("E:\\testdbf.dbf");
writer.write( fos);
fos.close();
}
}
开始时运行查看dbf文件,里面的中文都是乱码。后来加入了writer.setCharactersetName("GBK")后中文倒是正常显示了,但是文字都被截断了。"一二三四五六"在dbf文件中都只写入了"一二三"。 请大家帮帮忙,这个怎么样解决啊?
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货