如何用Java NIO读取文件
时间: 2023-07-18 19:29:17 浏览: 114
使用 Java NIO 读取文件需要以下步骤:
1. 创建一个文件通道(FileChannel)对象,通过 FileInputStream 的 getChannel() 方法获取。
2. 创建一个字节缓冲区(ByteBuffer)对象,用于存放从文件中读取的数据。
3. 调用通道的 read() 方法,将数据从文件读取到缓冲区中。
4. 循环读取数据,直到文件末尾。
5. 关闭文件通道和文件输入流。
下面是一个示例代码,演示如何使用 Java NIO 读取文件:
```java
import java.io.FileInputStream;
import java.nio.ByteBuffer;
import java.nio.channels.FileChannel;
public class NIOFileReader {
public static void main(String[] args) throws Exception {
FileInputStream inputStream = new FileInputStream("filename.txt");
FileChannel channel = inputStream.getChannel();
ByteBuffer buffer = ByteBuffer.allocate(1024);
while (channel.read(buffer) != -1) {
buffer.flip(); // 切换读模式
while (buffer.hasRemaining()) {
System.out.print((char) buffer.get()); // 读取数据
}
buffer.clear(); // 切换写模式
}
channel.close();
inputStream.close();
}
}
```
在上面的代码中,我们首先创建了一个文件输入流(FileInputStream)对象,并通过 getChannel() 方法获取了一个文件通道(FileChannel)对象。然后我们创建了一个字节缓冲区(ByteBuffer)对象,并指定了缓冲区的大小为 1024 字节。接下来,我们使用 while 循环读取数据,每次读取一部分数据到缓冲区中,然后切换读模式,读取数据,再切换写模式,清空缓冲区。最后,我们关闭了文件通道和文件输入流。
阅读全文