javadbf写入dbf文件的问题

悬赏:15 发布时间:2008-05-14 提问人:sunny88 (初级程序员)

我使用文档中的测试用例写入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文件中都只写入了"一二三"。

请大家帮帮忙,这个怎么样解决啊?
该问题已经关闭: 问题已经解决了。 需将Utils中的textPadding方法改为: public static byte[] textPadding(String text,String characterSetName, int length,int alignment,byte paddingByte) throws java.io.UnsupportedEncodingException { byte[] srcByte
Ask Myask

答题高手

问题频道帮助