FileReader/BufferedReader で読み取り中に大きなテキスト ファイルをチャンクに分割したいと考えています。各チャンクは、ダウンストリーム コードで個別に処理されます (つまり、各チャンクの情報の HashMap を生成します)。これを行うには、まず、1 つのチャンクがどのように見えるかを定義するパターンを見つける必要があります。誰かがここで私を助けてくれるかもしれません。
これは、私のファイルの一般的な構造がどのように見えるかです (「//」と「\\」はファイルの一部ではありません):
///
Car: Oldtimer
Ford Model T - 1908
Chevrolet Bel-Air - 1956
Mercedes-Benz W 198 - 1954
Car: Compact Car
Toyota iQ - 2008
Volkswagen Polo V - 2009
Audi A1 - 2010
Car: Special Car
Bat Mobile - 1966
Black Beauty - 1966
K.I.T.T. - 1982
Total: 3
//
1 つのチャンクは "Car: ABC" で始まり、次の "Car: XYZ" エントリの前で終了する必要があります。各 "Car: ABC" エントリの前後には、常に 1 行の空白行があります。ファイルは「Total: n」で終わります。説明のために、サンプル ファイルの最初のチャンクは次のようになります。
///
Car: Oldtimer
Ford Model T - 1908
Chevrolet Bel-Air - 1956
Mercedes-Benz W 198 - 1954
//
これまでのところ、 を使用して「Car:」タグ間の任意のエントリを一致させるために REGEX マッチングを試みましたPattern.compile("Car:\\s(.*)Car:\\s")
。おそらく、各チャンクにアイデンティティを与えるための他の方法またはより良い方法を知っているでしょう。前もって感謝します。