Below Java code shows how to use FileChannel to read data into buffer.
This is done by following below steps :
- Create FileInputStream for the file to be read
 - Create FileChannel from FileInputStream
 - Create ByteBuffer as channel reads data into buffer and set the limit of ByteBuffer.
 - Read data from channel to byteBuffer
 - To read data from ByteBuffer we need to flip the byteBuffer from writing mode to reading mode. This can be done by calling byteBuffer.flip() method.
 
/****************************************************************************************
* Created on 09-2011Copyright(c) https://kodehelp.com All Rights Reserved.
****************************************************************************************/
package com.kodehelp.javanio;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.nio.ByteBuffer;
import java.nio.channels.FileChannel;
/**
 * Created by https://kodehelp.com Date: 9/22/11
 */
public class FileChannelExample {
    public static void main(String args[]) {
        FileInputStream fis = null;
        try {
            fis = new FileInputStream("/testfile.txt");
            FileChannel fileChannel = fis.getChannel();
            ByteBuffer byteBuffer = ByteBuffer.allocate(1024);
            int bytes = fileChannel.read(byteBuffer);
            while (bytes != -1) {
                byteBuffer.flip();
                while (byteBuffer.hasRemaining()) {
                    System.out.print((char) byteBuffer.get());
                }
                byteBuffer.clear();
                bytes = fileChannel.read(byteBuffer);
            }
            if (fis != null) {
                fis.close();
            }
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}