java如何从缓冲区读数据,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();

}

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值