【文件属性】:
文件名称:JAVA NIO 按行读取大文件支持 GB级别-修正版
文件大小:3KB
文件格式:ZIP
更新时间:2016-11-13 08:47:02
NIO,readLine
本类,是专门为了处理大文件,按行读取开发的类。
采用读文件的缓存 fbb 1024*5
行缓存 bb 256 字节
设计思想: 每次通过nio读取字节到 fbb中
然后对fbb自己中的内容进行行判断即 10 回车 13 行号 0 文件结束 这样字节的判断,然后 返回行
如果 到达 fbb的结尾 还没有结束,就再通过nio读取一段字节,继续处理。
由于对于本程序 116个字节以上的行才有意义,所以 在next实现方法中,有对 116 长度的判断,否则返回 null
修正了之前版本中的问题: 修正后的方法
private int readByte() throws IOException{
fbb.rewind();
fbb.clear();
if(this.fc.read(fbb)==-1){
EOF=true;
return 0;}else{
fbb.flip();
return fbb.limit();
}
}
把 fbb.position() 改成 fbb.limit()
【文件预览】:
card
----UNLTOBIN.java(2KB)
----policy_20131017.unl(281B)
----UnlBigFileReaderImpl.java(3KB)
网友评论
- 看不懂,不全
- 下载来学习学习
- 东西还不错
- 还需要修改一下代码,不过感谢楼主分享。
- 还不错,虽然需要读懂代码后修改一下。
- 看了下,很强大,思想不错
- NIO的效率比普通IO效率高了十倍,已经开始使用例子里的方法了
- 不错的例子,已经在使用了~!
- 虽然都差不多,但是没有提供完整的代码与依赖的jar包
- 还行,思想可以解决,虽然和业务结合紧密
- 有点坑爹,没有提供完整的代码与依赖的jar包,完全对不起这个分啊
- 好,不错。顶起