我想在使用 FileReader/BufferedReader 阅读时将大文本文件拆分为块。每个块将在我的下游代码中单独处理(即为每个块生成一个信息的 HashMap)。为了做到这一点,首先,我需要找到一种模式来定义一个块的外观。也许有人可以在这里帮助我。
这就是我的文件的一般结构的样子(“//”和“\\”不是文件的一部分):
//
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
//
一个块应该以“汽车:ABC”开始,并在下一个“汽车:XYZ”条目之前结束。每个“汽车:ABC”条目前后总是有一个空白行。该文件以“总计:n”结尾。只是为了说明,我的示例文件的第一块将是:
//
Car: Oldtimer
Ford Model T - 1908
Chevrolet Bel-Air - 1956
Mercedes-Benz W 198 - 1954
//
到目前为止,我尝试使用 REGEX 匹配来匹配“汽车:”标签之间的任何条目,Pattern.compile("Car:\\s(.*)Car:\\s")
但是,这种方法会遗漏每个偶数块,例如以“汽车:紧凑型汽车”开头的块。也许您知道其他或更好的方法来为每个块赋予身份。提前致谢。