
- 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 readLong() method
Description
The Java RandomAccessFile readLong() method reads a signed 64-bit integer from this file. This method reads eight bytes from the file, starting at the current file pointer.
Declaration
Following is the declaration for java.io.RandomAccessFile.readLong() method.
public final long readLong()
Parameters
NA
Return Value
This method returns the next eight bytes of this file, interpreted as a long.
Exception
IOException − If an I/O error occurs.
EOFException − If this file reaches the end before reading eight bytes.
Example - Usage of RandomAccessFile readLong() method
The following example shows the usage of RandomAccessFile readLong() method.
RandomAccessFileDemo.java
package com.tutorialspoint; import java.io.RandomAccessFile; import java.io.IOException; public class RandomAccessFileDemo { public static void main(String[] args) { try { long l = 536475859696l; // create a new RandomAccessFile with filename test RandomAccessFile raf = new RandomAccessFile("test.txt", "rw"); // write something in the file raf.writeLong(l); // set the file pointer at 0 position raf.seek(0); // print the long System.out.println(raf.readLong()); // set the file pointer at 0 position raf.seek(0); // write something in the file raf.writeLong(4876347485l); raf.seek(0); // print the long System.out.println(raf.readLong()); } 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 −
536475859696 4876347485
Example - Writing and Reading Long Values
The following example shows the usage of RandomAccessFile readLong() 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("longs1.dat", "rw"); // Write two long values (each takes 8 bytes) raf.writeLong(10000000000L); // 10 billion raf.writeLong(20000000000L); // 20 billion // Reset pointer to the beginning raf.seek(0); // Read long values long first = raf.readLong(); long second = raf.readLong(); System.out.println("First long: " + first); // 10000000000 System.out.println("Second long: " + second); // 20000000000 raf.close(); } catch (IOException e) { e.printStackTrace(); } } }
Output
Let us compile and run the above program, this will produce the following result−
First long: 10000000000 Second long: 20000000000
Explanation
writeLong(long l) writes 8 bytes to store a long value.
readLong() reads 8 bytes and returns the long.
Used when storing and retrieving large integer values, like timestamps or IDs.
Example - Random Access to a Specific Long
The following example shows the usage of RandomAccessFile readLong() 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("longs2.dat", "rw"); // Write 3 long values raf.writeLong(111L); // Position 0 raf.writeLong(222L); // Position 8 raf.writeLong(333L); // Position 16 // Jump to the third long (offset = 2 Ã 8 = 16 bytes) raf.seek(16); long third = raf.readLong(); System.out.println("Third long: " + third); // 333 raf.close(); } catch (IOException e) { e.printStackTrace(); } } }
Output
Let us compile and run the above program, this will produce the following result−
Third long: 333
Explanation
Each long occupies 8 bytes.
seek(16) jumps to the third long value directly.
readLong() reads the value at that position.
This demonstrates random access − useful for databases, logs, or index files.