问题
我在这里描述了一个非常简化的问题版本。我有一个巨大的文件(10-50GB),我需要分成数百万块。假设我有一些包含字符串" SPLITTER"的行。我需要按这些行拆分文件。每个块将包含两个SPLITTER行之间的文本。
这当然非常简化,实际的用例将涉及更复杂的匹配/拆分。
问题
所以我们这里有流媒体匹配问题。哪个更有效:将此视为字符串匹配问题,使用缓冲读取器读取行并根据具体情况进行比较和拆分? - 或者 - 将文件视为二进制输入流,将分割器字符串视为数组[Byte]并进行逐字节比较?
在开始实施之前,我需要先了解一下。
我正在使用Java。此外,原始输入将在动态中从bz2解压缩,以获得它的价值。
答案 0 :(得分:1)
它总是能够更快地将数据视为原始字节。将数据作为字符串意味着将其作为字节读取然后创建新字符串。