이 콘텐츠는 선택한 언어로 제공되지 않습니다.

Chapter 333. uniVocity Fixed Length DataFormat


Available as of Camel version 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 (see the download page for the latest versions).

<dependency>
    <groupId>org.apache.camel</groupId>
    <artifactId>camel-univocity-parsers</artifactId>
    <version>x.x.x</version>
</dependency>

333.1. 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.

333.2. Options

The uniVocity Fixed Length dataformat supports 17 options which are listed below.

NameDefaultJava TypeDescription

skipTrailingCharsUntilNewline

false

Boolean

Whether or not the trailing characters until new line must be ignored. The default value is false

recordEndsOnNewline

false

Boolean

Whether or not the record ends on new line. The default value is false

padding

 

String

The padding character. The default value is a space

nullValue

 

String

The string representation of a null value. The default value is null

skipEmptyLines

true

Boolean

Whether or not the empty lines must be ignored. The default value is true

ignoreTrailingWhitespaces

true

Boolean

Whether or not the trailing white spaces must ignored. The default value is true

ignoreLeadingWhitespaces

true

Boolean

Whether or not the leading white spaces must be ignored. The default value is true

headersDisabled

false

Boolean

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

headerExtractionEnabled

false

Boolean

Whether or not the header must be read in the first line of the test document The default value is false

numberOfRecordsToRead

 

Integer

The maximum number of record to read.

emptyValue

 

String

The String representation of an empty value

lineSeparator

 

String

The line separator of the files The default value is to use the JVM platform line separator

normalizedLineSeparator

 

String

The normalized line separator of the files The default value is a new line character.

comment

#

String

The comment symbol. The default value is

lazyLoad

false

Boolean

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

asMap

false

Boolean

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

contentTypeHeader

false

Boolean

Whether the data format should set the Content-Type header with the type from the data format if the data format is capable of doing so. For example application/xml for data formats marshalling to XML, or application/json for data formats marshalling to JSon etc.

333.3. Marshalling usages

The marshalling accepts either:

  • A list of maps (L`ist<Map<String, ?>>`), one for each line
  • A single map (Map<String, ?>), for a single line

Any other body will throws an exception.

333.3.1. Usage example: marshalling a Map into CSV format

<route>
    <from uri="direct:input"/>
    <marshal>
        <univocity-csv/>
    </marshal>
    <to uri="mock:result"/>
</route>

333.3.2. Usage example: marshalling a Map into fixed-width format

<route>
    <from uri="direct:input"/>
    <marshal>
        <univocity-fixed padding="_">
            <univocity-header length="5"/>
            <univocity-header length="5"/>
            <univocity-header length="5"/>
        </univocity-fixed>
    </marshal>
    <to uri="mock:result"/>
</route>

333.3.3. Usage example: marshalling a Map into TSV format

<route>
    <from uri="direct:input"/>
    <marshal>
        <univocity-tsv/>
    </marshal>
    <to uri="mock:result"/>
</route>

333.4. 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 (asMap option with false);
  • A map with all the values indexed by the headers (asMap option with true).

All the rows can either:

  • be collected at once into a list (lazyLoad option with false);
  • be read on the fly using an iterator (lazyLoad option with true).

333.4.1. Usage example: unmarshalling a CSV format into maps with automatic headers

<route>
    <from uri="direct:input"/>
    <unmarshal>
        <univocity-csv headerExtractionEnabled="true" asMap="true"/>
    </unmarshal>
    <to uri="mock:result"/>
</route>

333.4.2. Usage example: unmarshalling a fixed-width format into lists

<route>
    <from uri="direct:input"/>
    <unmarshal>
        <univocity-fixed>
            <univocity-header length="5"/>
            <univocity-header length="5"/>
            <univocity-header length="5"/>
        </univocity-fixed>
    </unmarshal>
    <to uri="mock:result"/>
</route>
Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.