Java - RandomAccessFile readInt() method



Description

The Java RandomAccessFile readInt() method reads a signed 32-bit integer from this file. This method reads 4 bytes from the file, starting at the current file pointer.

Declaration

Following is the declaration for java.io.RandomAccessFile.readInt() method.

public final int readInt()

Parameters

NA

Return Value

This method returns the next four bytes of this file, interpreted as an int.

Exception

  • IOException − If an I/O error occurs.Not thrown if end-of-file has been reached.

  • EOFException − If this file reaches the end before reading four bytes.

Example - Usage of RandomAccessFile readInt() method

The following example shows the usage of RandomAccessFile readInt() method.

RandomAccessFileDemo.java

package com.tutorialspoint;

import java.io.RandomAccessFile;
import java.io.IOException;

public class RandomAccessFileDemo {
   public static void main(String[] args) {

      try {
         int i = 284;
         
         // create a new RandomAccessFile with filename test
         RandomAccessFile raf = new RandomAccessFile("test.txt", "rw");

         // write something in the file
         raf.writeInt(123);

         // set the file pointer at 0 position
         raf.seek(0);

         // print the int
         System.out.println(raf.readInt());

         // set the file pointer at 0 position
         raf.seek(0);

         // write something in the file
         raf.writeInt(i);

         // set the file pointer at 0 position
         raf.seek(0);

         // print the int
         System.out.println(raf.readInt());
         
      } catch (IOException ex) {
         ex.printStackTrace();
      }
   }
}

Output

Assuming we have a text file test.txt in current directory which has the following content. This file will be used as an input for our example program −

ABCDE

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

123
284

Example - Writing and Reading Integers

The following example shows the usage of RandomAccessFile readInt() method.

RandomAccessFileDemo.java

package com.tutorialspoint;

import java.io.RandomAccessFile;
import java.io.IOException;

public class RandomAccessFileDemo {
   public static void main(String[] args) {
      try {
         RandomAccessFile raf = new RandomAccessFile("ints.dat", "rw");

         // Write two integers (each 4 bytes)
         raf.writeInt(100);
         raf.writeInt(200);

         // Reset pointer to the beginning
         raf.seek(0);

         // Read integers
         int first = raf.readInt();
         int second = raf.readInt();

         System.out.println("First int: " + first);   // 100
         System.out.println("Second int: " + second); // 200

         raf.close();
      } catch (IOException e) {
         e.printStackTrace();
      }
   }
}

Output

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

First int: 100
Second int: 200

Explanation

  • writeInt(int i) writes 4 bytes representing the integer.

  • readInt() reads exactly 4 bytes and returns the int value.

  • This is ideal for storing and retrieving fixed-size numeric records.

Example - Random Access to a Specific Integer

The following example shows the usage of RandomAccessFile readInt() method.

RandomAccessFileDemo.java

package com.tutorialspoint;

import java.io.RandomAccessFile;
import java.io.IOException;

public class RandomAccessFileDemo {
   public static void main(String[] args) {
      try {
         RandomAccessFile raf = new RandomAccessFile("ints2.dat", "rw");

         // Write 3 integers (each 4 bytes)
         raf.writeInt(1000);  // position 0
         raf.writeInt(2000);  // position 4
         raf.writeInt(3000);  // position 8

         // Move to second integer (offset = 4 bytes)
         raf.seek(4);
         int second = raf.readInt();

         System.out.println("Second int: " + second); // 2000

         raf.close();
      } catch (IOException e) {
         e.printStackTrace();
      }
   }
}

Output

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

Second int: 2000

Explanation

  • seek(4) moves the pointer to byte position 4 (where the second int starts).

  • readInt() reads the integer at that location.

  • This allows random access to any integer in a fixed-structure file.

java_io_randomaccessfile.htm