org.springframework.batch.item.file

## Class FlatFileItemWriter<T>

- java.lang.Object
- - org.springframework.batch.item.ItemStreamSupport
  - - org.springframework.batch.item.support.AbstractItemStreamItemWriter<T>
    - - org.springframework.batch.item.support.AbstractFileItemWriter<T>
      - - org.springframework.batch.item.file.FlatFileItemWriter<T>

- All Implemented Interfaces:
    ResourceAwareItemWriterItemStream<T>, ItemStream, ItemStreamWriter<T>, ItemWriter<T>, org.springframework.beans.factory.InitializingBean

      public class FlatFileItemWriter<T>
      extends AbstractFileItemWriter<T>

  This class is an item writer that writes data to a file or stream. The writer also provides restart. The location of the output file is defined by a `Resource` and must represent a writable file.
  Uses buffered writer to improve performance.
  The implementation is not thread-safe.
  Author:
    Waseem Malik, Tomas Slanina, Robert Kasanicky, Dave Syer, Michael Minella, Mahmoud Ben Hassine

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from class org.springframework.batch.item.support.AbstractFileItemWriter

      `AbstractFileItemWriter.OutputState`

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected LineAggregator<T>` | `lineAggregator`

    - ### Fields inherited from class org.springframework.batch.item.support.AbstractFileItemWriter

      `append, DEFAULT_CHARSET, DEFAULT_LINE_SEPARATOR, DEFAULT_TRANSACTIONAL, lineSeparator, logger, shouldDeleteIfExists, state`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `FlatFileItemWriter()`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `afterPropertiesSet()` Assert that mandatory properties (lineAggregator) are set.
    `java.lang.String` | `doWrite(java.util.List<? extends T> items)` Write out a string of items followed by a "new line", where the format of the new line separator is determined by the underlying operating system.
    `void` | `setLineAggregator(LineAggregator<T> lineAggregator)` Public setter for the `LineAggregator`.

    - ### Methods inherited from class org.springframework.batch.item.support.AbstractFileItemWriter

      `close, getOutputState, open, setAppendAllowed, setEncoding, setFooterCallback, setForceSync, setHeaderCallback, setLineSeparator, setResource, setSaveState, setShouldDeleteIfEmpty, setShouldDeleteIfExists, setTransactional, update, write`

    - ### Methods inherited from class org.springframework.batch.item.ItemStreamSupport

      `getExecutionContextKey, setExecutionContextName, setName`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### lineAggregator

          protected LineAggregator<T> lineAggregator

  - ### Constructor Detail

    - #### FlatFileItemWriter

          public FlatFileItemWriter()

  - ### Method Detail

    - #### afterPropertiesSet

          public void afterPropertiesSet()
                                  throws java.lang.Exception

      Assert that mandatory properties (lineAggregator) are set.
      Throws:
        `java.lang.Exception`
      See Also:
        `InitializingBean.afterPropertiesSet()`

    - #### setLineAggregator

          public void setLineAggregator(LineAggregator<T> lineAggregator)

      Public setter for the `LineAggregator`. This will be used to translate the item into a line for output.
      Parameters:
        `lineAggregator` - the `LineAggregator` to set

    - #### doWrite

          public java.lang.String doWrite(java.util.List<? extends T> items)

      Description copied from class: `AbstractFileItemWriter`
      Write out a string of items followed by a "new line", where the format of the new line separator is determined by the underlying operating system.
      Specified by:
        `doWrite` in class `AbstractFileItemWriter<T>`
      Parameters:
        `items` - to be written
      Returns:
        written lines