Java - RandomAccessFile writeInt(int v) method



Description

The Java RandomAccessFile writeInt(int v) method writes an int to the file as four bytes, high byte first. The write starts at the current position of the file pointer.

writeInt(int v) method −

  • Writes the 4 bytes of the int value to the file.

  • The bytes are written in big-endian order (most significant byte first).

  • The file pointer advances by 4 bytes.

  • You can later read the value using readInt().

Declaration

Following is the declaration for java.io.RandomAccessFile.writeInt(int v) method.

public final void writeInt(int v)

Parameters

v − a int value to be written.

Return Value

This method does not return a value.

Exception

  • IOException − If an I/O error occurs.

Example - Usage of RandomAccessFile writeInt(int v) method

The following example shows the usage of RandomAccessFile writeInt(int v) 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 f = 1847;

         // create a new RandomAccessFile with filename test
         RandomAccessFile raf = new RandomAccessFile("test.txt", "rw");

         // write an int in the file
         raf.writeInt(f);

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

         // read int
         System.out.println(raf.readInt());

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

         // write a int at the start
         raf.writeInt(200);

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

         // read 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 −

1847
200

Example - Write and Read a Single Integer

The following example shows the usage of RandomAccessFile writeInt(int v) 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("int1.dat", "rw")) {
         // Write an integer
         raf.writeInt(2025);

         // Move file pointer to start
         raf.seek(0);

         // Read the integer back
         int value = raf.readInt();
         System.out.println("Read int: " + value);
      } catch (IOException e) {
         e.printStackTrace();
      }
   }
}

Output

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

Read int: 2025

Explanation

  • 2025 is stored as 4 bytes (big-endian).

  • File content (in hex): 00 00 07 E9 (2025 in hex is 0x07E9).

  • readInt() retrieves the same value.

Example - Write Multiple Integers and Read Them

The following example shows the usage of RandomAccessFile writeInt(int v) 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("int2.dat", "rw")) {
         // Write multiple integers
         raf.writeInt(10);
         raf.writeInt(20);
         raf.writeInt(30);

         // Move pointer to beginning
         raf.seek(0);

         // Read back the integers
         int a = raf.readInt();
         int b = raf.readInt();
         int c = raf.readInt();

         System.out.println("Read integers: " + a + ", " + b + ", " + c);
      } catch (IOException e) {
         e.printStackTrace();
      }
   }
}

Output

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

Read integers: 10, 20, 30

Explanation

  • Three integers (10, 20, 30) are written → 12 bytes total.

  • Each int occupies 4 bytes.

  • seek(0) resets the pointer to read from the start.

java_io_randomaccessfile.htm