-1

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")。おそらく、各チャンクにアイデンティティを与えるための他の方法またはより良い方法を知っているでしょう。前もって感謝します。

4

3 に答える 3