Java.io.FileInputStream.read() Method



Description

The java.io.FileInputStream.read(byte[] b, int off, int len) reads upto len bytes of data from this input stream into an array of bytes, starting at offset off in the destination array b.

Declaration

Following is the declaration for java.io.FileInputStream.read(byte[] b, int off, int len) method −

public int read(byte[] b, int off, int len)

Parameters

  • b − The byte array into which data is read.

  • off − The start offset in the destination array b.

  • len − The maximum number of bytes to be read.

Return Value

The method returns the total number of bytes read into the buffer.

Exception

  • IOException − If an I/O error occurs.

  • NullPointerException − If b is null.

  • IndexOutOfBoundsException − If len or off is negative, or b.length-off is greater than b.length.

Example

The following example shows the usage of java.io.FileInputStream.read(byte[] b, int off, int len) method.

package com.tutorialspoint;

import java.io.IOException;
import java.io.FileInputStream;

public class FileInputStreamDemo {
   public static void main(String[] args) throws IOException {
      FileInputStream fis = null;
      int i = 0;
      char c;
      byte[] bs = new byte[4];
      
      try {
         // create new file input stream
         fis = new FileInputStream("C://test.txt");
         
         // read bytes to the buffer
         i = fis.read(bs, 2, 1);
         
         // prints
         System.out.println("Number of bytes read: "+i);
         System.out.print("Bytes read: ");
         
         // for each byte in buffer
         for(byte b:bs) {
         
            // converts byte to character
            c = (char)b;
            if(b == 0)
               c = '-';
            
            // print
            System.out.print(c);
         } 
         
      } catch(Exception ex) {
         // if any error occurs
         ex.printStackTrace();
      } finally {
         // releases all system resources from the streams
         if(fis!=null)
            fis.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 −

Number of bytes read: 1
Bytes read: --A-
java_io_fileinputstream.htm
Advertisements