Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## net.sf.jasperreports.engine.data
Class JRCsvDataSource

    java.lang.Object
      net.sf.jasperreports.engine.data.JRCsvDataSource

All Implemented Interfaces:
  JRDataSource

    public class JRCsvDataSource

extends java.lang.Object
implements JRDataSource

This datasource implementation reads a CSV stream. Datasource rows are separated by a record delimiter string and fields inside a row are separated by a field delimiter character. Fields containing delimiter characters can be placed inside quotes. If fields contain quotes themselves, these are duplicated (example: "John ""Doe""" will be displayed as John "Doe").

Since CSV does not specify column names, the default naming convention is to name report fields COLUMN_x and map each column with the field found at index x in each row (these indices start with 0). To avoid this situation, users can either specify a collection of column names or set a flag to read the column names from the first row of the CSV file.

Version:
  $Id: JRCsvDataSource.java 3678 2010-04-02 12:13:06Z shertage $
Author:
  Ionut Nedelcu (ionutned@users.sourceforge.net)

Constructor Summary
`JRCsvDataSource(java.io.File file)` Creates a datasource instance from a CSV file, using the default encoding.
`JRCsvDataSource(java.io.File file, java.lang.String charsetName)` Creates a datasource instance from a CSV file, using the specified encoding.
`JRCsvDataSource(java.io.InputStream stream)` Creates a datasource instance from a CSV data input stream, using the default encoding.
`JRCsvDataSource(java.io.InputStream stream, java.lang.String charsetName)` Creates a datasource instance from a CSV data input stream, using the specified encoding.
`JRCsvDataSource(java.io.Reader reader)` Creates a datasource instance from a CSV data reader.

Method Summary
`void` | `close()` Closes the reader.
`java.text.DateFormat` | `getDateFormat()` Gets the date format that will be used to parse date fields
`char` | `getFieldDelimiter()` Returns the field delimiter character.
`java.lang.Object` | `getFieldValue(JRField jrField)` Gets the field value for the current position.
`java.text.NumberFormat` | `getNumberFormat()`
`java.lang.String` | `getRecordDelimiter()` Returns the record delimiter string.
`boolean` | `next()` Tries to position the cursor on the next element in the data source.
`void` | `setColumnNames(java.lang.String[] columnNames)` Specifies an array of strings representing column names matching field names in the report template
`void` | `setDateFormat(java.text.DateFormat dateFormat)` Sets the desired date format to be used for parsing date fields
`void` | `setFieldDelimiter(char fieldDelimiter)` Sets the field delimiter character.
`void` | `setNumberFormat(java.text.NumberFormat numberFormat)`
`void` | `setRecordDelimiter(java.lang.String recordDelimiter)` Sets the record delimiter string.
`void` | `setUseFirstRowAsHeader(boolean useFirstRowAsHeader)` Specifies whether the first line of the CSV file should be considered a table header, containing column names matching field names in the report template

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### JRCsvDataSource

    public JRCsvDataSource(java.io.InputStream stream)

  Creates a datasource instance from a CSV data input stream, using the default encoding.

  Parameters:
    `stream` - an input stream containing CSV data

### JRCsvDataSource

    public JRCsvDataSource(java.io.InputStream stream,
                           java.lang.String charsetName)
                    throws java.io.UnsupportedEncodingException

  Creates a datasource instance from a CSV data input stream, using the specified encoding.

  Parameters:
    `stream` - an input stream containing CSV data
    `charsetName` - the encoding to use
  Throws:
    `java.io.UnsupportedEncodingException`

### JRCsvDataSource

    public JRCsvDataSource(java.io.File file)
                    throws java.io.FileNotFoundException

  Creates a datasource instance from a CSV file, using the default encoding.

  Parameters:
    `file` - a file containing CSV data
  Throws:
    `java.io.FileNotFoundException`

### JRCsvDataSource

    public JRCsvDataSource(java.io.File file,
                           java.lang.String charsetName)
                    throws java.io.FileNotFoundException,
                           java.io.UnsupportedEncodingException

  Creates a datasource instance from a CSV file, using the specified encoding.

  Parameters:
    `file` - a file containing CSV data
    `charsetName` - the encoding to use
  Throws:
    `java.io.FileNotFoundException`
    `java.io.UnsupportedEncodingException`

### JRCsvDataSource

    public JRCsvDataSource(java.io.Reader reader)

  Creates a datasource instance from a CSV data reader.

  Parameters:
    `reader` - a `Reader` instance, for reading the stream

Method Detail

### next

    public boolean next()
                 throws JRException

  Description copied from interface: `JRDataSource`
  Tries to position the cursor on the next element in the data source.

  Specified by:
    `next` in interface `JRDataSource`
  Returns:
    true if there is a next record, false otherwise
  Throws:
    `JRException` - if any error occurs while trying to move to the next element

### getFieldValue

    public java.lang.Object getFieldValue(JRField jrField)
                                   throws JRException

  Description copied from interface: `JRDataSource`
  Gets the field value for the current position.

  Specified by:
    `getFieldValue` in interface `JRDataSource`
  Returns:
    an object containing the field value. The object type must be the field object type.
  Throws:
    `JRException`

### getDateFormat

    public java.text.DateFormat getDateFormat()

  Gets the date format that will be used to parse date fields

### setDateFormat

    public void setDateFormat(java.text.DateFormat dateFormat)

  Sets the desired date format to be used for parsing date fields

### getFieldDelimiter

    public char getFieldDelimiter()

  Returns the field delimiter character.

### setFieldDelimiter

    public void setFieldDelimiter(char fieldDelimiter)

  Sets the field delimiter character. The default is comma. If characters such as comma or quotes are specified, the results can be unpredictable.

  Parameters:
    `fieldDelimiter` -

### getRecordDelimiter

    public java.lang.String getRecordDelimiter()

  Returns the record delimiter string.

### setRecordDelimiter

    public void setRecordDelimiter(java.lang.String recordDelimiter)

  Sets the record delimiter string. The default is line feed (\n).

  Parameters:
    `recordDelimiter` -

### setColumnNames

    public void setColumnNames(java.lang.String[] columnNames)

  Specifies an array of strings representing column names matching field names in the report template

### setUseFirstRowAsHeader

    public void setUseFirstRowAsHeader(boolean useFirstRowAsHeader)

  Specifies whether the first line of the CSV file should be considered a table header, containing column names matching field names in the report template

### close

    public void close()

  Closes the reader. Users of this data source should close it after usage.

### getNumberFormat

    public java.text.NumberFormat getNumberFormat()

### setNumberFormat

    public void setNumberFormat(java.text.NumberFormat numberFormat)

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

© 2001-2010 Jaspersoft Corporation www.jaspersoft.com