4

データが位置ベースの形式で保存されているフラットファイルがあります。1から5まで-いくつかのx値が保存され、6から13まで-いくつかのy値が保存され、14から18まで-いくつかのz値が保存されます..ファイルを解析してそれらの値を取得し、豆。

誰でも私ができる最善の方法は、ファイルを解析する方法を意味します.私はJava 6を使用しています.

4

1 に答える 1

4

単純な Java では、複雑でない固定長の行は非常に簡単です。

単純な基本部分文字列を使用しないのはなぜですか? これが非常に大きなフラット ファイルの解析に使用されているのを見たことがありますが、思ったほど悪くはありません。そこから概要を把握するのも非常に簡単です。

myObject.setX(Integer.parseInt(input.substring(0,4)));
myObject.setY(input.substring(5,12); 
..  

いくつかの大きなフラット ファイルを Java にマッピングすることに真剣に取り組んでいる場合は、何らかのライブラリを使用することをお勧めします。

Smooksを使用すると、XML ファイルでマッピングを指定し、smooks ランタイムでフィールドからオブジェクトにマップできます。グラフィカル マッピング用の Eclipse IDE もあります。このライブラリはやや重いです。

私はApache CamelのBindyコンポーネントがとても気に入っています。メッセージ ルーターを導入するためのオーバーヘッドが必要ですが、プレーンな Java クラスに注釈を付けて、マッピングと Java クラスを一度に行うことができます。

// Like this
@FixedLengthRecord(length=54, paddingChar=' ')
public static class Order {

    @DataField(pos = 1, length=2)
    private int orderNr;

    @DataField(pos = 3, length=2)
    private String clientNr;
于 2013-01-14T18:59:45.593 に答える