//$Id: DBFWriter.java 2008-7-8 下午08:14:11 chaostone Exp $ /* * * Copyright c 2005-2009. * * Licensed under GNU LESSER General Public License, Version 3. * http://www.gnu.org/licenses * */ /******************************************************************************** * @author chaostone * * MODIFICATION DESCRIPTION * * Name Date Description * ============ ============ ============ * chaostone 2008-7-8 Created * ********************************************************************************/ package org.beanfuse.transfer.exporter.writer; import org.beanfuse.transfer.Transfer; import com.linuxense.javadbf.DBFException; import com.linuxense.javadbf.DBFField; import com.linuxense.javadbf.DBFWriter; public class DBFItemWriter extends AbstractItemWriter { DBFWriter writer; String charSet = "gbk"; public DBFItemWriter() { super(); writer = new DBFWriter(); writer.setCharactersetName(charSet); } public void write(Object obj) { try { writer.addRecord((Object[]) obj); } catch (DBFException e) { throw new RuntimeException(e.getMessage()); } } public void writeTitle(Object title) { Object[] attrs = (Object[]) title; try { DBFField fields[] = new DBFField[attrs.length]; for (int i = 0; i < fields.length; i++) { fields[i] = new DBFField(); fields[i].setName((String) attrs[i]); fields[i].setDataType(DBFField.FIELD_TYPE_C); // FIXME fields[i].setFieldLength(255); } writer.setFields(fields); } catch (DBFException e) { throw new RuntimeException(e.getMessage()); } } public void close() { try { writer.write(outputStream); } catch (DBFException e) { throw new RuntimeException(e.getMessage()); } } public String getFormat() { return Transfer.DBF; } }