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