uniVocity Fixed Length
Since Camel 2.15
This Data Format uses uniVocity-parsers for reading and writing 3 kinds of tabular data text files:
-  
CSV (Comma Separated Values), where the values are separated by a symbol (usually a comma)
 -  
fixed-width, where the values have known sizes
 -  
TSV (Tabular Separated Values), where the fields are separated by a tabulation
 
Thus there are 3 data formats based on uniVocity-parsers.
If you use Maven you can just add the following to your pom.xml, substituting the version number for the latest and greatest release.
<dependency>
    <groupId>org.apache.camel</groupId>
    <artifactId>camel-univocity-parsers</artifactId>
    <version>x.x.x</version>
</dependency> Options
Most configuration options of the uniVocity-parsers are available in the data formats. If you want more information about a particular option, please refer to their documentation page.
The 3 data formats share common options and have dedicated ones, this section presents them all.
Options
The uniVocity Fixed Length dataformat supports 16 options, which are listed below.
| Name | Default | Java Type | Description | 
|---|---|---|---|
  |  The padding character. The default value is a space.  |  ||
  |  
  |  Whether or not the trailing characters until new line must be ignored. The default value is false.  |  |
  |  
  |  Whether or not the record ends on new line. The default value is false.  |  |
  |  The string representation of a null value. The default value is null.  |  ||
  |  
  |  Whether or not the empty lines must be ignored. The default value is true.  |  |
  |  
  |  Whether or not the trailing white spaces must be ignored. The default value is true.  |  |
  |  
  |  Whether or not the leading white spaces must be ignored. The default value is true.  |  |
  |  
  |  Whether or not the headers are disabled. When defined, this option explicitly sets the headers as null which indicates that there is no header. The default value is false.  |  |
  |  
  |  Whether or not the header must be read in the first line of the test document The default value is false.  |  |
  |  The maximum number of record to read.  |  ||
  |  The String representation of an empty value.  |  ||
  |  The line separator of the files The default value is to use the JVM platform line separator.  |  ||
  |  
  |  The normalized line separator of the files The default value is a new line character.  |  |
  |  
  |  The comment symbol. The default value is #.  |  |
  |  
  |  Whether the unmarshalling should produce an iterator that reads the lines on the fly or if all the lines must be read at one. The default value is false.  |  |
  |  
  |  Whether the unmarshalling should produce maps for the lines values instead of lists. It requires to have header (either defined or collected). The default value is false.  |  
Marshalling usages
The marshalling accepts either:
-  
A list of maps (
List<Map<String, ?>>), one for each line -  
A single map (
Map<String, ?>), for a single line 
Any other body will throws an exception.
Usage example: marshalling a Map into CSV format
<route>
    <from uri="direct:input"/>
    <marshal>
        <univocity-csv/>
    </marshal>
    <to uri="mock:result"/>
</route> Unmarshalling usages
The unmarshalling uses an InputStream in order to read the data.
Each row produces either:
-  
a list with all the values in it (
asMapoption withfalse); -  
A map with all the values indexed by the headers (
asMapoption withtrue). 
All the rows can either:
-  
be collected at once into a list (
lazyLoadoption withfalse); -  
be read on the fly using an iterator (
lazyLoadoption withtrue). 
Spring Boot Auto-Configuration
When using univocityFixed with Spring Boot make sure to use the following Maven dependency to have support for auto configuration:
<dependency>
  <groupId>org.apache.camel.springboot</groupId>
  <artifactId>camel-univocity-parsers-starter</artifactId>
  <version>x.x.x</version>
  <!-- use the same version as your Camel core version -->
</dependency> The component supports 50 options, which are listed below.