Java如何使用FileChannel将数据读入缓冲区?
下面的示例演示如何使用FileChannel将某些数据读入Buffer。我们从FileInputStream实例创建一个FileChannel。由于通道将数据读入缓冲区,因此我们需要创建一个ByteBuffer并设置其容量。使用FileChannel.read()方法将数据从通道读取到缓冲区中。
要从缓冲区中读取数据,我们需要先使用Buffer.flip()方法翻转缓冲区。该方法会将缓冲区从写入模式更改为读取模式。读取整个缓冲区后,使用clear()方法调用清除缓冲区。
package org.nhooo.example.io;
import java.io.FileInputStream;
import java.io.IOException;
import java.nio.ByteBuffer;
import java.nio.channels.FileChannel;
public class FileRead {
public static void main(String[] args) {
String path = "D:/Temp/source.txt";
try (FileInputStream fis = new FileInputStream(path);
FileChannel fileChannel = fis.getChannel()) {
ByteBuffer buffer = ByteBuffer.allocate(64);
int bytesRead = fileChannel.read(buffer);
while (bytesRead != -1) {
buffer.flip();
while (buffer.hasRemaining()) {
System.out.print((char) buffer.get());
}
buffer.clear();
bytesRead = fileChannel.read(buffer);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
热门推荐
1 如何训练狗狗不叫
2 训练狗狗不叫
3 训练狗狗随行
4 怎么训练狗狗不叫
7 训练比熊狗狗教程
10 上海狗狗训练
11 怎么训练狗狗上厕所
12 训练狗狗趴下
13 狗狗服从训练
14 训练狗狗拒食
15 训练狗狗笑
16 训练狗狗大便
17 训练狗狗立
18 训练狗狗捡东西