Java - RandomAccessFile writeBoolean(boolean v) method



Description

The Java RandomAccessFile writeBoolean(boolean v) method writes a boolean to the file as a one-byte value. The value true is written out as the value (byte)1; the value false is written out as the value (byte)0. The write starts at the current position of the file pointer.

Declaration

Following is the declaration for java.io.RandomAccessFile.writeBoolean(boolean v) method.

public final void writeBoolean(boolean v)

Parameters

v − a boolean 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 writeBoolean(boolean v) method

The following example shows the usage of RandomAccessFile writeBoolean(boolean 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 {
         boolean b = true;
         
         // create a new RandomAccessFile with filename test
         RandomAccessFile raf = new RandomAccessFile("test.txt", "rw");

         // write a boolean
         raf.writeBoolean(false);

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

         // print the boolean
         System.out.println(raf.readBoolean());

         // write a boolean
         raf.writeBoolean(b);

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

         // print the boolean
         System.out.println(raf.readBoolean());
         
      } 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 −

false
true

Example - Writing and Reading Boolean Values

The following example shows the usage of RandomAccessFile writeBoolean(boolean 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("bool1.dat", "rw");

         // Write boolean values
         raf.writeBoolean(true);
         raf.writeBoolean(false);

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

         // Read the boolean values back
         boolean first = raf.readBoolean();
         boolean second = raf.readBoolean();

         System.out.println("First value: " + first);   // true
         System.out.println("Second value: " + second); // false

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

Output

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

First value: true
Second value: false

Explanation

  • writeBoolean(true) writes one byte: 1

  • writeBoolean(false) writes one byte: 0

  • readBoolean() interprets those bytes correctly and returns the original boolean value.

  • This is useful for storing flags or binary states in files.

Example - Overwriting a Boolean in the Middle of a File

The following example shows the usage of RandomAccessFile writeBoolean(boolean 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("bool2.dat", "rw");

         // Write 3 booleans
         raf.writeBoolean(true);   // Position 0
         raf.writeBoolean(true);   // Position 1
         raf.writeBoolean(false);  // Position 2

         // Overwrite the second boolean (at position 1) with false
         raf.seek(1);
         raf.writeBoolean(false);

         // Read all booleans to verify
         raf.seek(0);
         boolean b1 = raf.readBoolean();
         boolean b2 = raf.readBoolean();
         boolean b3 = raf.readBoolean();

         System.out.println("Values: " + b1 + ", " + b2 + ", " + b3); // true, false, false

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

Output

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

Values: true, false, false

Explanation

  • Each boolean takes 1 byte.

  • We use seek(1) to overwrite the second boolean.

  • This shows how writeBoolean() can be used for updating specific boolean flags in a binary file.

java_io_randomaccessfile.htm
Advertisements