org.beanfuse.transfer.exporter.DBFItemWriterTest.java Source code

Java tutorial

Introduction

Here is the source code for org.beanfuse.transfer.exporter.DBFItemWriterTest.java

Source

//$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();

    }
}