ByteReaderPattern
The ByteReaderPattern pattern is used to read byte data from a file.
Supporting classes
The FileByteReader class provides the logic for opening and reading byte data from the given file.
Required properties
The following properties
are required for the pattern.
Property name | Value |
---|---|
PATTERN_IMPL_CLASS | Class implementing ByteReaderPattern interface |
FILENAME | Complete path to the input file |
Optional properties
The following properties
are optional for the pattern.
Property name | Value | Description |
---|---|---|
debug | true or false (default is false) | Enables detailed tracing on this batch data stream. |
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. |
Interface definition
public interface ByteReaderPattern {
/**
* Is called by the framework during Step setup stage
* @param props
*/
public void initialize(Properties props);
/**
*
* @param reader
* @throws IOException
*/
public void processHeader(BufferedInputStream reader) throws IOException;
/**
* Get the next record from the input stream
* @param reader
* @return
* @throws IOException
*/
public Object fetchRecord(BufferedInputStream reader) throws IOException;
}
xJCL example
<batch-data-streams>
<bds>
<logical-name>inputStream</logical-name>
<props>
<prop name="PATTERN_IMPL_CLASS" value="com.ibm.websphere.batch.samples.tests.bds.EchoReader"/>
<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.FileByteReader</impl-class>
</bds>
</batch-data-streams>