首页javabuffer_operationJava I/O - 如何从带有ByteBuffer的通道读取

Java I/O - 如何从带有ByteBuffer的通道读取

我们想知道如何从带有ByteBuffer的通道读取。
import java.io.FileInputStream;
import java.nio.ByteBuffer;
import java.nio.channels.ReadableByteChannel;

public class Main {
  public static void main(String[] argv) throws Exception {
    ReadableByteChannel channel = new FileInputStream("infile.dat").getChannel();

    ByteBuffer buf = ByteBuffer.allocateDirect(10);

    int numRead = 0;
    while (numRead >= 0) {
      buf.rewind();

      numRead = channel.read(buf);

      buf.rewind();

      for (int i = 0; i < numRead; i++) {
        byte b = buf.get();
      }
    }
  }
}