
JAVA NIO 实现按行读取大文件(GB级)- 修正版
5星
- 浏览量: 0
- 大小:None
- 文件类型:None
简介:
本文详细介绍了使用Java NIO高效实现对大规模文件(如GB级别)进行逐行读取的方法,并提供了优化和错误修复后的代码示例。
本类是专门为了处理大文件而设计的,能够按行读取数据。采用1024*5行缓存(fbb)与256字节的设计思想:每次通过nio读取字节到fbb中,并对其中的内容进行回车符判断以确定行号,如果达到fbb结尾仍未结束,则继续通过nio读取一段字节并处理。由于本程序仅在116个字节以上的数据有意义,在实现next方法时有专门的长度判断,否则返回null。
修正了之前版本中的问题:新的readByte()方法如下:
```java
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()。
全部评论 (0)
还没有任何评论哟~


