Java - RandomAccessFile readBoolean() method



Description

The Java RandomAccessFile readBoolean() method reads a boolean from this file. This method reads a single byte from the file, starting at the current file pointer. A value of 0 represents false. Any other value represents true.

readBoolean() method −

  • Reads one byte from the file.

  • Returns −

    • true if the byte is non-zero (i.e., not 0x00)

    • false if the byte is zero (0x00)

  • File pointer advances by 1 byte.

  • Throws EOFException if end-of-file is reached.

Declaration

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

public final boolean readBoolean()

Parameters

NA

Return Value

This method returns the boolean value read.

Exception

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

  • EOFException − If this file has reached the end.

Example - Usage of RandomAccessFile readBoolean() method

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

RandomAccessFileDemo.java

package com.tutorialspoint;

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

public class RandomAccessFileDemo {
   public static void main(String[] args) {
   
      try {
         // create a new RandomAccessFile with filename test
         RandomAccessFile raf = new RandomAccessFile("test.txt", "rw");

         // write something in the file
         raf.writeUTF("Hello World");

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

         // read boolean
         System.out.println(raf.readBoolean());

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

         // write 0 at the start
         raf.write(0);

         // read 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 a Boolean Value

The following example shows the usage of RandomAccessFile readBoolean() 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 a boolean value
         raf.writeBoolean(true);

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

         // Read the boolean value
         boolean result = raf.readBoolean();
         System.out.println("Read boolean: " + result);
      } catch (IOException e) {
         e.printStackTrace();
      }
   }
}

Output

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

Read boolean: true

Explanation

  • writeBoolean(true) writes the byte 0x01.

  • readBoolean() reads that byte−

    • 0x01 → true

Example - Write Multiple Booleans and Read Them Back

The following example shows the usage of RandomAccessFile readBoolean() 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 multiple booleans
         raf.writeBoolean(true);
         raf.writeBoolean(false);
         raf.writeBoolean(true);

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

         // Read back values
         System.out.println("1st boolean: " + raf.readBoolean());
         System.out.println("2nd boolean: " + raf.readBoolean());
         System.out.println("3rd boolean: " + raf.readBoolean());
      } catch (IOException e) {
         e.printStackTrace();
      }
   }
}

Output

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

1st boolean: true
2nd boolean: false
3rd boolean: true

Explanation

  • Booleans written as: true → 0x01, false → 0x00

  • File contains bytes: 0x01 0x00 0x01

  • Reading in order gives: true, false, true

java_io_randomaccessfile.htm
Advertisements