06 September 2020
“如何快速对一个大文件进行解析?”比如一个10GB的大日志文件,需要用比如Logviewer这样的专门软件来查看,普通文件编辑软件无法查看,如果解析的时候直接把文件读入到内存中,内存会很慢并且可能爆栈,如何高效解析呢?
先来看普通Java IO 处理大文件过程 (Java普通IO介绍):
获得测试的大文件,可以编写一个生成指定大小的文件的工具类BigFileGenerator,然后生成一个10G的文件,比如csv,每行代表一条web请求访问信息,这一步比较快
创建一个工具类BigFileReader,使用FileInputStream、按块读