FileReaderPattern
El patrón FileReaderPattern se usa para leer datos de texto de un archivo.
Clases de soporte
La clase TextFileReader proporciona la lógica para abrir y leer datos de texto línea por línea.
Propiedades obligatorias
Las propiedades siguientes son necesarias para el patrón.
Nombre de propiedad | Value |
---|---|
PATTERN_IMPL_CLASS | Clase que implementa la interfaz FileReaderPattern |
FILENAME | Vía de acceso completa al archivo de entrada |
Propiedades opcionales
Para el patrón las propiedades siguientes son opcionales.
Nombre de propiedad | Value | Descripción |
---|---|---|
debug | true o false (el valor predeterminado es false) | Habilita el rastreo detallado en esta secuencia de datos por lotes. |
EnablePerformanceMeasurement | true o false (el valor predeterminado es false) | Calcula el tiempo total invertido en las secuencias de datos por lotes y el método processRecord, si se utiliza GenericXDBatchStep. |
EnableDetailedPerformanceMeasurement | true o false (el valor predeterminado es false) | Proporciona un desglose más detallado del tiempo invertido en cada método de las secuencias de datos por lotes. |
file.encoding | Codificación del archivo. | Por ejemplo, 8859_1 |
AppendJobldToFileName | true o false (el valor predeterminado es false) | Añade el JobID al nombre de archivo antes de cargar el archivo. |
Definición de interfaz
public interface FileReaderPattern {
/**
* Se invoca durante la fase de configuración de paso
* @parámetro props
*/
public void initialize(Properties props);
/**
* Este método sólo se invoca una vez. Se debe utilizar
* para leer todos los datos de cabecera, si es necesario.
* @parámetro reader
* @emite una excepción IOException
*/
public void processHeader(BufferedReader reader) throws IOException;
/**
* Este método debe leer la siguiente línea de la cabecera
* y devolver los datos en un formato adecuado para ser procesados
* por el paso.
* @parámetro reader
* @return
* @emite una excepción IOException
*/
public Object fetchRecord(BufferedReader reader) throws IOException;
/**
* Este método también se puede invocar para que el paso de proceso
* obtenga los datos de cabecera que se obtuvieron anteriormente durante la llamada
* al proceso processHeader
* @devuelve
*/
public Object fetchHeader();
}
Ejemplo xJCL
<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>