java 大文件处理及内容匹配

读取5G左右txt文件,内容都是由一定格式的长字符串组成,如{a:xxxxxxx}{b:xxxxxx}{c:xxxxxx}...
其中{a:xxxxxxx}为一段,{b:xxxxxxx}为下一段,依次类推.
要求:如果{a:xxxxxxx}中包含目标字符串“XXX”,则将{a:xxxxxxx}输出到文件。
目前基本功能已实现,但处理效率比较低,求大牛们提供好的解决思路。

每次读取10MB左右的数据,然后分多个块,让多个线程去匹配。循环直到完成。

用多线程处理,或者一开始就把物理文件分割成若干较小的文件