Java中读取大文件的工具类

超大文件容易导致内存耗尽和重复读取,怎么办?

1、传统的在内存中读取
这种方法带来的问题是文件的所有行都被存放在内存中,当文件足够大时很快就会导致程序抛出OutOfMemoryError 异常。

2、文件流
使用java.util.Scanner类扫描文件的内容,一行一行连续地读取。这种方案将会遍历文件中的所有行——允许对每一行进行处理,而不保持对它的引用。总之没有把它们存放在内存中。

3、Apache Commons IO流
同样也可以使用Commons IO库实现,利用该库提供的自定义LineIterator:
LineIterator it = FileUtils.lineIterator(theFile, "UTF-8");


你可能感兴趣的:(Java工具类,Java,大文件)