To transform data read from the file system to objects and the other way around you need
to do some work. Contrary to FileReadingMessageSource
and to a
lesser extent FileWritingMessageHandler
, it is very likely that you
will need your own mechanism to get the job done. For this you can implement the
Transformer
interface. Or extend the
AbstractFilePayloadTransformer
for inbound messages. Some obvious
implementations have been provided.
FileToByteArrayTransformer
transforms Files into byte[]s using
Spring's FileCopyUtils
. It is often better to use a sequence of
transformers than to put all transformations in a single class. In that case the File to
byte[] conversion might be a logical first step.
FileToStringTransformer
will convert Files to Strings as the name
suggests. If nothing else, this can be useful for debugging (consider using with a Wire Tap).
To configure File specific transformers you can use the appropriate elements from the file namespace.
<file-to-bytes-transformer input-channel="input" output-channel="output" delete-files="true"/> <file:file-to-string-transformer input-channel="input" output-channel="output delete-files="true" charset="UTF-8"/>
The delete-files option signals to the transformer that it should delete
the inbound File after the transformation is complete. This is in no way a replacement for using the
AcceptOnceFileListFilter
when the FileReadingMessageSource is being used in a
multi-threaded environment (e.g. Spring Integration in general).