FileReaderPattern
Das Muster "FileReaderPattern" wird verwendet, um Textdaten aus einer Datei zu lesen.
Unterstützungsklassen
Die Klasse "TextFileReader" stellt die Logik bereit, die zum Öffnen und Lesen von Textdaten Zeile für Zeile erforderlich sind.
Erforderliche Eigenschaften
Die folgenden Eigenschaften sind für das Muster erforderlich.
Eigenschaftsname | Wert |
---|---|
PATTERN_IMPL_CLASS | Klasse, die die Schnittstelle FileReaderPattern implementiert |
FILENAME | Vollständiger Pfad zur Eingabedatei |
Optionale Eigenschaften
Die folgenden Eigenschaften sind für das Muster optional.
Eigenschaftsname | Wert | Beschreibung |
---|---|---|
debug | true oder false (der Standardwert ist false) | Aktiviert detailliertes Tracing in diesem Stapeldatenstrom. |
EnablePerformanceMeasurement | true oder false (der Standardwert ist false) | Berechnet die Gesamtzeit in den Stapeldatenströmen und in der Methode "processRecord" bei Verwendung des GenericXDBatchStep. |
EnableDetailedPerformanceMeasurement | true oder false (der Standardwert ist false) | Bietet eine detailliertere Aufgliederung der Zeit pro Methode des Stapeldatenstroms. |
file.encoding | Codierung der Datei. | Beispiel: 8859_1 |
AppendJobldToFileName | true oder false (der Standardwert ist false) | Hängt die Job-ID an den Dateinamen an, bevor die Datei geladen wird. |
Schnittstellendefinition
public interface FileReaderPattern {
/**
* Wird bei der Konfiguration des Abschnitts aufgerufen
* @param props
*/
public void initialize(Properties props);
/**
* Diese Methode wird nur einmal aufgerufen. Sie sollte zum Lesen von Header-Daten
* verwendet werden, falls nötig.
* @param reader
* @throws IOException
*/
public void processHeader(BufferedReader reader) throws IOException;
/**
* Diese Methode muss die nächste Zeile im Leseprogramm lesen und die Daten
* so zurückgeben, dass sie im entsprechenden Schritt verarbeitet werden können.
* @param reader
* @return
* @throws IOException
*/
public Object fetchRecord(BufferedReader reader) throws IOException;
/**
* Diese Methode kann während des Verarbeitungsschritts aufgerufen werden,
* um die Header-Daten, die zuvor während des Aufrufs des processHeader
* abgerufen wurden, abzurufen.
* @return
*/
public Object fetchHeader();
}
xJCL-Beispiel
<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.TextFileReader</impl-class>
</bds>
</batch-data-streams>