2016-06-29 6 views
1

私はカスタムコードを使用して作成したフォーマットされたebcdic byte []を持っています。今私はファイルに書きたいと思う。私はJavaを使ってこれを行うことができます。私はSpringライターを使ってこれを行うことができるかどうかをチェックしようとしていました。 FlatFileItemWriterを使ってみました。ただファイルにオブジェクトのセットを書きました。また、問題は、アイテム作成者が各アイテムの後に新しい行を導入することです。ただし、Ebcdicはファイル全体の単一のストリームです。 ItemWriter ebcdicByteWriter;spring writerを使用してEBCDICバイト[]をファイルに書き込む方法は?

@Override 
public void write(List<? extends AccountInvoice> items) throws Exception { 
    ArrayList<byte[]> finalList= new ArrayList<byte[]>(); 

    for (AccountInvoice item : items) { 
     finalList.add(item.getEbcdicBytes()); 
    } 

    ebcdicByteWriter.write(finalList); 

} 

答えて

1

FlatFileItemWriter行区切りを変更するためのフックを有する:setLineSeparator(java.lang.String lineSeparator)。行が連結されるように空のStringを渡すのはなぜですか?

EDIT:ラインアグリゲータを使用して、バイト配列をEBCDIC文字列に変換します。

public class BytesAggregator<byte[]> implements LineAggregator { 
    @Override 
    public String aggregate(byte[] item) { 
     return new String(bytes, "Cp1047"); 
    } 
} 
+0

ありがとうございました!今私はすべてのデータを1行にまとめました。 LineSeparator。しかし、私は、FlatFileItemWriterは常にStringを書き込むことに気付きました。バイト[]のオブジェクト文字列がファイルに書き込まれています。例えば。 [B @ 59ddcf86実際のバイトの代わりにB @ 42284509 –

+0

ファイルにバイトアウトするだけの他のアイテムライターは知っていますか? –

+0

他のライターは必要ありません。 –

関連する問題