The ByteWriterPattern pattern is used to write byte data to a file.
The FileByteWriter class provides the logic to open and write bytes to the given file. It can either append or overwrite existing content, depending on the properties specified. During a restart, the file is always opened in append mode.
Property name | Value |
---|---|
PATTERN_IMPL_CLASS | Class implementing ByteWriterPattern interface |
FILENAME | Complete path to the input file |
Property name | Value | Description |
---|---|---|
debug | true or false (default is false) | Enables detailed tracing on this batch datastream. |
EnablePerformanceMeasurement | true or false (default is false) | Calculates the total time spent in the batch data-streams and the processRecord method, if you are using the GenericXDBatchStep. |
EnableDetailedPerformanceMeasurement | true or false (default is false) | Provides a more detailed breakdown of time spent in each method of the batch data-streams. |
file.encoding | Encoding of the file | For example, 8859_1 |
AppendJobldToFileName | true or false (default is false) | Appends the JobID to the file name before loading the file. |
append | true or false (default is true) | Determines whether to open the file in append
mode. Important: During a restart, the file is always
opened in append mode.
|
public interface ByteWriterPattern {
/**
* Invoked during the step setup phase
* @param props
*/
public void initialize(Properties props);
/**
* Writes the given object onto the given outputstream. Any processing
* that needs to be done before writing can be added here
* @param out
* @param record
* @throws IOException
*/
public void writeRecord(BufferedOutputStream out, Object record) throws IOException;
/**
* Write header information if any
* @param out
* @throws IOException
*/
public void writeHeader(BufferedOutputStream out) throws IOException;
/**
* This method can be optionally called during process step to explicity
* initialize and write the header.
* @param header
*/
public void writeHeader(BufferedOutputStream out, Object header) throws IOException;
}
<batch-data-streams>
<bds>
<logical-name>outputStream</logical-name>
<props>
<prop name="PATTERN_IMPL_CLASS" value="com.ibm.websphere.batch.samples.tests.bds.EchoWriter"/>
<prop name="file.encoding" value="8859_1"/>
<prop name="FILENAME" value="/opt/txlist.txt" />
<prop name="debug" value="true"/>
</props>
<impl-class>com.ibm.websphere.batch.devframework.datastreams.patterns.FileByteWriter</impl-class>
</bds>
</batch-data-streams>