//$Id: DBFItemWriterTest.java 2008-7-8 下午08:45:48 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; import static org.testng.Assert.assertEquals; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.InputStream; import org.apache.commons.lang.SystemUtils; import org.beanfuse.transfer.exporter.writer.DBFItemWriter; import org.testng.annotations.Test; import com.linuxense.javadbf.DBFField; import com.linuxense.javadbf.DBFReader; public class DBFItemWriterTest { @Test public void testWriter() throws Exception { DBFItemWriter writer = new DBFItemWriter(); String dbfile = SystemUtils.getJavaIoTmpDir() + "/test.dbf"; FileOutputStream fos = new FileOutputStream(dbfile); writer.setContext(null); writer.setOutputStream(fos); writer.writeTitle(new Object[] { "code", "name" }); writer.write(new Object[] { "001", "apple" }); writer.write(new Object[] { "002", "banana" }); writer.write(new Object[] { "003", "香蕉香蕉香蕉" }); writer.write(new Object[] { "004", "long word of unknow catalog fruit" }); writer.close(); fos.close(); InputStream inputStream = new FileInputStream(dbfile); DBFReader reader = new DBFReader(inputStream); reader.setCharactersetName("gbk"); int numberOfFields = reader.getFieldCount(); assertEquals(2, numberOfFields); DBFField field0 = reader.getField(0); assertEquals("code", field0.getName()); DBFField field1 = reader.getField(1); assertEquals("name", field1.getName()); Object[] rowObjects; while ((rowObjects = reader.nextRecord()) != null) { for (int i = 0; i < rowObjects.length; i++) { System.out.println(rowObjects[i]); } } inputStream.close(); } }