社区
Java SE
帖子详情
请教如何使用bufferedreader读取百M到G量级的文件
systemofadown
2007-03-27 12:15:04
如题,我使用bufferedreader默认的缓冲大小,然后br.readline()逐行读取,结果只能读取一部分文件。
想请教如何能按bufferedreader缓冲的大小分批读取完整个文件?(即读取到缓冲区满以后自动清空缓冲,继续读直到文件结束)
另外:bufferedreader默认的缓冲区大小是多少?如果自己制定太大的话会不会对程序运行效率产生影响?
谢谢
...全文
897
9
打赏
收藏
请教如何使用bufferedreader读取百M到G量级的文件
如题,我使用bufferedreader默认的缓冲大小,然后br.readline()逐行读取,结果只能读取一部分文件。 想请教如何能按bufferedreader缓冲的大小分批读取完整个文件?(即读取到缓冲区满以后自动清空缓冲,继续读直到文件结束) 另外:bufferedreader默认的缓冲区大小是多少?如果自己制定太大的话会不会对程序运行效率产生影响? 谢谢
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
该用户的昵称呢
2012-03-09
打赏
举报
回复
其实我想求解的
adolfmc
2011-11-14
打赏
举报
回复
回帖试试
Color_2011
2011-11-14
打赏
举报
回复
其实我是来看lz的
asdfgcjw
2011-08-21
打赏
举报
回复
YES!
gectalent
2008-03-31
打赏
举报
回复
据说回帖能得10分?
laitaogood
2007-04-03
打赏
举报
回复
读取百M甚至是G级量的数据,最好用MappedByteBuffer 来进行操作
import java.io.*;
import java.nio.*;
import java.nio.channels.*;
public class LargeMappedFiles {
static int length = 0x8FFFFFF; // 128 Mb
public static void main(String[] args) throws Exception {
MappedByteBuffer out =
new RandomAccessFile("test.dat", "rw").getChannel()
.map(FileChannel.MapMode.READ_WRITE, 0, length);
for(int i = 0; i < length; i++)
out.put((byte)'x');
System.out.println("Finished writing");
for(int i = length/2; i < length/2 + 6; i++)
System.out.print((char)out.get(i)); //read file
}
}
uniume
2007-04-03
打赏
举报
回复
$ zz╭ ╮╭ ﹌╮. $
$ z(o-.-o)(o-.-o) . $
$ ┏~﹊︸ ̄~﹊︸ ̄~┓ $
$ IT者-IT开发者的网站-- $
$ 10万篇技术资料--天天更新 $
$ -----www.itzhe.cn----- $
wowo05
2007-03-31
打赏
举报
回复
即读取到缓冲区满以后自动清空缓冲,继续读直到文件结束//本来就是这样作的啊!你看看加上流名.flush()会怎么用;
-----------
分批读取完整个文件?应该不可以做到
-----------
frilly
2007-03-30
打赏
举报
回复
BufferedReader bin = BufferedReader(Reader in, int sz)
创建一个使用指定sz大小输入缓冲区的缓冲字符输入流。
默认缓冲不清楚了,自己指定也行,应该不会有影响的
JAVA NIO(六):
读取
10G的
文件
其实很容易
本文通过对比FileInputStream、
BufferedReader
等方法,展示了如何
使用
JAVA高效
读取
10G的大
文件
。测试结果显示,传统API性能优异,而NIO在
读取
速度上并无明显优势。
Java
读取
1G以上的txt
文件
,并对内容进行解析,利用
BufferedReader
设置缓存大小
本文介绍如何
使用
Java高效地
读取
1GB以上的txt大
文件
,通过
BufferedReader
结合5MB的缓冲区进行内容解析,提升
读取
速度。
java
读取
大
文件
1G+
本文介绍如何
使用
Java高效地
读取
大于1GB的大
文件
,通过结合字符流和
BufferedReader
,以5MB的缓冲区进行
读取
,提高处理效率。示例代码展示了如何避免一次性加载整个
文件
到内存,而是逐行
读取
并进行统计操作。
Java高效
读取
大数据
文件
---较优方法
博客围绕大小>=10G、每行是json对象的
文件
,探讨高效
读取
方法。提到readLine()占时多,可
使用
BufferedReader
每次读入5M数据减少IO。业界认为MappedByteBuffer速度最快,但相比
BufferedReader
提升有限。对于当前需求,采用MappedByteBuffer
读取
最佳,不用多线程时换磁盘阵列也是不错选择。
100G的
文件
如何
读取
- 第306篇
文章介绍了两种在Java中
读取
文件
的方法。一种是
使用
java.nio.file.Files的内存
读取
法,适合小
文件
,对大
文件
可能导致内存溢出。另一种是
使用
java.io.FileReader和
BufferedReader
的逐行
读取
法,适合处理大
文件
且效率较高。对于大
文件
,推荐
使用
逐行
读取
以避免内存问题。
Java SE
62,622
社区成员
307,252
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章