本文介绍了三种逐行读取文本文件的方法:
- Java NIO库–读取文件的
FileChannel
。 这是读取文件的非阻塞模式 -
BufferedReader
–这是一项阻止操作,即它将阻止对文件的任何其他读/写请求,直到完成任务为止。 - Apache Commons IO –
FileUtils
,一种逐行读取文件的更简单方法。 这也是一个阻塞操作。
每个示例的输入文件与以下所示的文件相同:
src/com/mkyong/data.txt
A
B
C
D
1
2
3
1. Java NIO库
该示例提供了读取小文件的最简单方法。 由于这是一个小文件,因此我们使用FileChannel
大小直接将所需的内存分配给ByteBuffer
。
NIOFileReadExample.java
package com.mkyong;
import java.io.IOException;
import java.io.RandomAccessFile;
import java.nio.ByteBuffer;
import java.nio.channels.FileChannel;
public class NIOFileReadExample {
public static void main(String[] args) throws IOException {
RandomAccessF