分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 代码编程

使用Apache Commons IO组件读取大文件

发布时间:2023-09-06 01:18责任编辑:苏小强关键词:组件

Apache Commons IO读取文件代码如下:

Files.readLines(new File(path), Charsets.UTF_8);FileUtils.readLines(new File(path));

以上代码在读取普通文本文件时没有任何问题,但是在读取大文件时会抛出“OutOfMemoryError”异常。

因为:文件的所有行都被存放在内存中,当文件足够大时内存吃紧,导致程序抛出异常。

解决思路:

通常不需要把文件的所有行一次性地放入内存中,相反,我们只需要遍历文件的每一行,然后做相应的处理,处理完之后把它扔掉。所以,这正是我们将要做的——通过行迭代,而不是把所有行都放在内存中。

LineIterator it = FileUtils.lineIterator(theFile, "UTF-8");try { ???while (it.hasNext()) { ???????String line = it.nextLine(); ???????// do something with line ???}} finally { ???LineIterator.closeQuietly(it);}

使用Apache Commons IO组件读取大文件

原文地址:http://www.cnblogs.com/xusweeter/p/7681008.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved