Java高效读取大文件(转)
2016-01-11 20:51
302 查看
1、概述
本教程将演示如何用Java高效地读取大文件。这篇文章是Baeldung(http://www.baeldung.com/) 上“Java——回归基础”系列教程的一部分。2、在内存中读取
读取文件行的标准方式是在内存中读取,Guava 和Apache Commons IO都提供了如下所示快速读取文件行的方法:例如:读取一个大约1G的文件:
把文件所有的内容都放在内存中很快会耗尽可用内存——不论实际可用内存有多大,这点是显而易见的。
此外,我们通常不需要把文件的所有行一次性地放入内存中——相反,我们只需要遍历文件的每一行,然后做相应的处理,处理完之后把它扔掉。所以,这正是我们将要做的——通过行迭代,而不是把所有行都放在内存中。
3、文件流
现在让我们看下这种解决方案——我们将使用java.util.Scanner类扫描文件的内容,一行一行连续地读取:4、Apache Commons IO流
同样也可以使用Commons IO库实现,利用该库提供的自定义LineIterator:5、结论
这篇短文介绍了如何在不重复读取与不耗尽内存的情况下处理大文件——这为大文件的处理提供了一个有用的解决办法。所有这些例子的实现和代码片段都可以在我的github项目上获取到——这是一个基于Eclipse的项目,所以它应该很容易被导入和运行。
原文链接: Eugen Paraschiv 翻译: ImportNew.com - 进林
译文链接: http://www.importnew.com/14512.html
相关文章推荐
- Spring JdbcTemplate 的使用与学习(转)
- eclipse使用全解
- (2-4)HDFS的Java接口,上传,下载,创建文件,删除文件
- Struts2的Convention插件
- 使用Eclipse 4.5 + Maven 3 打包Scala/Spark项目
- Java NIO使用及原理分析
- 使用dom4j 读写xml文件
- Java中的异常体系
- Struts+Hibernate常用工具类
- java8新特性
- JAVA中的String类--字符链接运算符“+”
- spring 第一篇(1-1):让java开发变得更简单(下)转
- 003_eclipse安装教程
- Struts2异常处理配置
- 总结:Ubuntu上安装JDK和Eclipse
- Java_变量、常量、数值转换、字符串、输入输出
- java 正则(4) 不常用 / 贪婪匹配 / 非捕获组 / 向前引用 / flag 简写
- java图片处理--第三方JAR
- eclipse修改js文件cpu爆满 卡死解决方法
- Struts+Hibernate 配置文件作用