
- Java.io - Home
- Java.io - BufferedInputStream
- Java.io - BufferedOutputStream
- Java.io - BufferedReader
- Java.io - BufferedWriter
- Java.io - ByteArrayInputStream
- Java.io - ByteArrayOutputStream
- Java.io - CharArrayReader
- Java.io - CharArrayWriter
- Java.io - Console
- Java.io - DataInputStream
- Java.io - DataOutputStream
- Java.io - File
- Java.io - FileDescriptor
- Java.io - FileInputStream
- Java.io - FileOutputStream
- Java.io - FilePermission
- Java.io - FileReader
- Java.io - FileWriter
- Java.io - FilterInputStream
- Java.io - FilterOutputStream
- Java.io - FilterReader
- Java.io - FilterWriter
- Java.io - InputStream
- Java.io - InputStreamReader
- Java.io - LineNumberInputStream
- Java.io - LineNumberReader
- Java.io - ObjectInputStream
- Java.io - ObjectInputStream.GetField
- Java.io - ObjectOutputStream
- io - ObjectOutputStream.PutField
- Java.io - ObjectStreamClass
- Java.io - ObjectStreamField
- Java.io - OutputStream
- Java.io - OutputStreamWriter
- Java.io - PipedInputStream
- Java.io - PipedOutputStream
- Java.io - PipedReader
- Java.io - PipedWriter
- Java.io - PrintStream
- Java.io - PrintWriter
- Java.io - PushbackInputStream
- Java.io - PushbackReader
- Java.io - RandomAccessFile
- Java.io - Reader
- Java.io - SequenceInputStream
- Java.io - SerializablePermission
- Java.io - StreamTokenizer
- Java.io - StringBufferInputStream
- Java.io - StringReader
- Java.io - StringWriter
- Java.io - Writer
- Java.io package Useful Resources
- Java.io - Discussion
Java - RandomAccessFile readDouble() method
Description
The Java RandomAccessFile readDouble() method reads a double from this file. This method reads a long value, starting at the current file pointer, as if by the readLong method and then converts that long to a double using the longBitsToDouble method in class Double.
Declaration
Following is the declaration for java.io.RandomAccessFile.readDouble() method.
public final double readDouble()
Parameters
NA
Return Value
This method returns the next eight bytes of this file, interpreted as a double.
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 eight bytes.
Example - Usage of RandomAccessFile readDouble() method
The following example shows the usage of RandomAccessFile readDouble() method.
RandomAccessFileDemo.java
package com.tutorialspoint; import java.io.RandomAccessFile; import java.io.IOException; public class RandomAccessFileDemo { public static void main(String[] args) { try { double d = 1.5987475; // create a new RandomAccessFile with filename test RandomAccessFile raf = new RandomAccessFile("test.txt", "rw"); // write something in the file raf.writeDouble(765.497634); // set the file pointer at 0 position raf.seek(0); // read double System.out.println(raf.readDouble()); // set the file pointer at 0 position raf.seek(0); // write a double at the start raf.writeDouble(d); // set the file pointer at 0 position raf.seek(0); // read double System.out.println(raf.readDouble()); } 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 −
765.497634 1.5987475
Example - Writing and Reading Double Values
The following example shows the usage of RandomAccessFile readDouble() 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("doubles.dat", "rw"); // Write two double values (each takes 8 bytes) raf.writeDouble(3.14); raf.writeDouble(42.0); // Move the pointer back to the beginning raf.seek(0); // Read the double values double d1 = raf.readDouble(); double d2 = raf.readDouble(); System.out.println("First double: " + d1); // 3.14 System.out.println("Second double: " + d2); // 42.0 raf.close(); } catch (IOException e) { e.printStackTrace(); } } }
Output
Let us compile and run the above program, this will produce the following result−
First double: 3.14 Second double: 42.0
Explanation
writeDouble(double d) writes 8 bytes (64 bits) to store the double.
readDouble() reads 8 bytes and returns a double value.
You must read values in the same order and type as they were written.
Example - Random Access to Specific Double Value
The following example shows the usage of RandomAccessFile readDouble() 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("doubles2.dat", "rw"); // Write 3 doubles raf.writeDouble(10.5); // Position 0 raf.writeDouble(20.75); // Position 8 raf.writeDouble(30.25); // Position 16 // Jump to the third double (each double = 8 bytes) raf.seek(16); double third = raf.readDouble(); System.out.println("Third double: " + third); // 30.25 raf.close(); } catch (IOException e) { e.printStackTrace(); } } }
Output
Let us compile and run the above program, this will produce the following result−
Third double: 30.25
Explanation
Each double occupies 8 bytes.
To read the third double, we seek(16) to skip the first two (2 x 8).
readDouble() fetches the value at that position.
This is useful in binary files where fixed-size records are stored and you want to access specific data efficiently.