Java.io.FileInputStream.getChannel() Method



Description

The java.io.FileInputStream.getChannel() returns the unique FileChannel object associated with this file input stream. The position of the returned channel the number of bytes read from the file so far.

Declaration

Following is the declaration for java.io.FileInputStream.getChannel() method −

public FileChannel getChannel()

Parameters

NA

Return Value

The methods returns the channel ssociated with this file input stream.

Exception

NA

Example

The following example shows the usage of java.io.FileInputStream.getChannel() method.

package com.tutorialspoint;

import java.io.IOException;
import java.io.FileInputStream;
import java.nio.channels.FileChannel;

public class FileInputStreamDemo {
   public static void main(String[] args) throws IOException {
      FileChannel fc = null;
      FileInputStream fis = null;
      int i = 0;
      long pos;
      char c;
      
      try {
         // create new file input stream
         fis = new FileInputStream("C://test.txt");
         
         // read till the end of the file
         while((i = fis.read())!=-1) {
         
            // get file channel
            fc = fis.getChannel();
            
            // get channel position
            pos = fc.position();
            
            // integer to character
            c = (char)i;
            
            // prints
            System.out.print("No of bytes read: "+pos);
            System.out.println("; Char read: "+c);
         }
         
      } catch(Exception ex) {
         // if an I/O error occurs
         System.out.println("IOException: close called before read()");
      } finally {
         // releases all system resources from the streams
         if(fis!=null)
            fis.close();
         if(fc!=null)
            fc.close();
      }
   }
}

Assuming we have a text file c:/test.txt, which has the following content. This file will be used as an input for our example program −

ABCDEF

Let us compile and run the above program, this will produce the following result −

No of bytes read: 1; Char read: A
No of bytes read: 2; Char read: B
No of bytes read: 3; Char read: C
No of bytes read: 4; Char read: D
No of bytes read: 5; Char read: E
No of bytes read: 6; Char read: F
java_io_fileinputstream.htm
Advertisements