escritura por lotes de primavera en un archivo de formato fijo

Tengo un escritor de artículos como a continuación:

<beans:property name="lineAggregator">
<beans:bean class="org.springframework.batch.item.file.transform.FormatterLineAggregator">
        <beans:property name="fieldExtractor">
                <beans:bean class="org.springframework.batch.item.file.transform.BeanWrapperFieldExtractor">
                 <beans:property name="names" value="column1, column2, column3, column4 " /> 
                </beans:bean>
            </beans:property>

            <beans:property name="format" value="%-8s%-12s%-11s%-16s" /> 
        </beans:bean>
    </beans:property>

Como está claro, estoy escribiendo 4 columnas en un archivo de formato fijo con longitudes de columna de 8, 12, 11 y 16 respectivamente.

Sin embargo, digamos que la cadena de la columna 1 tiene 14 caracteres en lugar de 8 caracteres, luego el archivo de salida está acomodando ciegamente a los 14 caracteres empujando toda la línea hacia adelante.

THIS IS A TEST

Expecting: 
THIS IS COL2STARTS

Getting: 
THIS IS A TESTCOL2STARTS

¿Cómo evitar esto?

¿No deberían truncarse los caracteres restantes y solo escribirse los primeros 8 caracteres?

¿Debo validar mi código para pasar estrictamente solo 8 caracteres como se espera por columna?

Respuesta 1

¿Es posible usar Entity Manager o alguna otra API JPA para ejecutar una consulta y obtener resultados, por ejemplo, como una Lista, sin tener que crear una clase de Entidad para la misma? Básicamente, quiero ser ...

He escrito un programa C # que tiene que llamar a dos métodos en un proceso de complemento eclipse. Necesito una idea sobre cómo realizar la comunicación entre el proceso de C # y el proceso de Java.

Método validatePW: no toma ningún parámetro y no devuelve ninguno. Política PW: debe tener al menos 4 caracteres y contener al menos una letra mayúscula al menos una ...

Tengo un receptor de transmisión simple configurado para recibir intentos del sistema que informan a mi aplicación sobre un cambio en el estado de la red. La idea es mostrar un cuadro de diálogo diciéndole al usuario que ha dejado el WiFI ...