search
HomeJavajavaTutorialJava RandomAccessFile

The following article provides an outline for Java RandomAccessFile. The java RandomAccessFile is a class that is used to read and write for a random access file. The RandomAccessFile class is a built-in class in java that defines the java.io.RandomAccessFile package. The random access file is like an array of bytes stored in a file system. Instances. The RandomAccessFile supports both the read and write operation to the random access file. This file maintains a cursor or pointer; by moving the pointer to a specific position, we can perform the read or write operation to the specific position. The EOF Exception is thrown when the file reaches the end of the file before the required number of bytes has been read.

Start Your Free Software Development Course

Web development, programming languages, Software testing & others

Syntax of RandomAccessFile class in java:

Given below is the declaration syntax of java.io.RandomAccessFile class:

public class RandomAccessFile extends Object implements DataInput,DataOutput, Closeable
{
// Constructors and methods of the RandomAccessFile class
}

The above is the syntax of the RandomAccessFile, where it extends to the Object class and implements to the DataOutput, DataInput and Closeable interfaces.

RandomAccessFileclass member Functions:

TheRandomAccessFileclass contains constructors and some functions as a RandomAccessFile class member function.

Constructors of Java RandomAccessFile Class

Given below are the constructors:

  • RandomAccessFile( File f, String opt ): This constructor creates an instance of RandomAccessFile by creating a random access file to read or write (optionally) from or to the specified file in the File.
  • RandomAccessFile(String fname, String opt): This constructor creates an instance of RandomAccessFile by creating a random access file to read or write (optionally) from or to the specified file in the name.

Functions of Java FileInputStream Class

Given below are the functions of the Java FileInputStream Class:

  • int read(): This function is used to read a byte of data from the file.
  • intread(byte[] b): This function is used to read an array of bytes up to b.length bytes.
  • int read(byte[] b, int off, intlen): This function is used to read bytes of data from the input stream up to specified len into destination b array at start offset.
  • int readInt(): This function is used to read a signed 32-bit integer from the file.
  • String readUTF(): This function is used to read the file in the form of a string.
  • FileChannelgetChannel(): This function is used to get the unique FileChannel object of the input file.
  • voidseek(long byte): This function is used to set the offset of the file pointer for the next read or write from the beginning of the file.
  • intskipBytes(int): This function skip n bytes of input.
  • void write(int b): This function is used to write the pass byte to the file.
  • void write(byte[] b): This function write b.length bytes from the specified byte array starting at offset off to this file.
  • void write(byte[] b, int off, intlen): This function write len bytes to file from the pass byte of the array starting at offset off.
  • void writeDouble(double value): This function is used to convert and write the converted specified double value to long (which uses the doubleToLongBits function of class Double) to the file as an 8-byte quantity where the first byte is high.
  • A void writeFloat( float value): This function is used to convert and write the converted specified float value to an int (which uses the floatToIntBits function of class Float) to the file 4-byte quantity where the first byte is high.
  • longlength(): This function is used to get the length of the file.
  • FileDescriptorgetFD(): This function is used to get the file descriptor object of the file.
  • long getFilePointer(): This function is used to get the current offset of the file.
  • void close(): This function is used to close the random access file and release stream and release the file resource.

Examples of Java RandomAccessFile

Given below are the examples mentioned:

Example #1

We create RandomAccessFile objects by using the RandomAccessFile class constructor and pass the file name to read and write a character.

Code:

//package demo;
import java.io.IOException;
import java.io.RandomAccessFile;
public class Demo
{
public static void main(String[] args) throws Exception
{
int i;
char c;
try {
// data.txt file contain "Hello!, How are you?" data in it
RandomAccessFile f1 = new RandomAccessFile("D:\\data.txt", "r");
i = f1.read();
c = (char) i;
System.out.println("The First byte is :" +c);
System.out.println("The Number of remaining bytes are :" +f1.length());
// seek method to seek 4 bytes
f1.seek(4);
i = f1.read();
// converts byte to character
c = (char) i;
System.out.println("The Next byte after 4 byte seek is :" +c);
// getChannel() method
System.out.println("\nThe unique FileChannel object is : " +f1.getChannel());
// getFD() method
System.out.println("The FileDescriptor object is : " +f1.getFD());
// getFilePointer() method
System.out.println("The FilePointer offset is : " +f1.getFilePointer());
RandomAccessFile f2 = new RandomAccessFile("D:\\data.txt", "rw");
//seek 10 bytes and write this message to file
f2.seek(10);
f2.write("I am good.".getBytes());
f1.close();
f2.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}

Output:

Java RandomAccessFile

Example #2

RandomAccessFile class, where we read the data into the byte array.

Code:

//package demo;
import java.io.IOException;
import java.io.RandomAccessFile;
public class Demo
{
public static void main(String[] args) throws Exception
{
byte[] b = new byte[16];
int i;
char c;
try {
// data.txt file contain "Hello!, How are you?" data in it
RandomAccessFile f1 = new RandomAccessFile("D:\\data.txt", "r");
i = f1.read(b, 1, 15);
System.out.println("The total bytes read are : "+i);
System.out.print("The bytes read are : ");
for(byte t : b) {
c = (char)t;
System.out.print(c);
}
f1.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}

Output:

Java RandomAccessFile

Conclusion

The RandomAccessFile is a class in java that is used to read and write to a random access file. This is a built-in class in java that defines the java.io.RandomAccessFilepackage.

The above is the detailed content of Java RandomAccessFile. For more information, please follow other related articles on the PHP Chinese website!

Statement
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
How do I use Maven or Gradle for advanced Java project management, build automation, and dependency resolution?How do I use Maven or Gradle for advanced Java project management, build automation, and dependency resolution?Mar 17, 2025 pm 05:46 PM

The article discusses using Maven and Gradle for Java project management, build automation, and dependency resolution, comparing their approaches and optimization strategies.

How do I create and use custom Java libraries (JAR files) with proper versioning and dependency management?How do I create and use custom Java libraries (JAR files) with proper versioning and dependency management?Mar 17, 2025 pm 05:45 PM

The article discusses creating and using custom Java libraries (JAR files) with proper versioning and dependency management, using tools like Maven and Gradle.

How do I implement multi-level caching in Java applications using libraries like Caffeine or Guava Cache?How do I implement multi-level caching in Java applications using libraries like Caffeine or Guava Cache?Mar 17, 2025 pm 05:44 PM

The article discusses implementing multi-level caching in Java using Caffeine and Guava Cache to enhance application performance. It covers setup, integration, and performance benefits, along with configuration and eviction policy management best pra

How can I use JPA (Java Persistence API) for object-relational mapping with advanced features like caching and lazy loading?How can I use JPA (Java Persistence API) for object-relational mapping with advanced features like caching and lazy loading?Mar 17, 2025 pm 05:43 PM

The article discusses using JPA for object-relational mapping with advanced features like caching and lazy loading. It covers setup, entity mapping, and best practices for optimizing performance while highlighting potential pitfalls.[159 characters]

How does Java's classloading mechanism work, including different classloaders and their delegation models?How does Java's classloading mechanism work, including different classloaders and their delegation models?Mar 17, 2025 pm 05:35 PM

Java's classloading involves loading, linking, and initializing classes using a hierarchical system with Bootstrap, Extension, and Application classloaders. The parent delegation model ensures core classes are loaded first, affecting custom class loa

See all articles

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
3 weeks agoBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Best Graphic Settings
3 weeks agoBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. How to Fix Audio if You Can't Hear Anyone
3 weeks agoBy尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: How To Unlock Everything In MyRise
3 weeks agoBy尊渡假赌尊渡假赌尊渡假赌

Hot Tools

SecLists

SecLists

SecLists is the ultimate security tester's companion. It is a collection of various types of lists that are frequently used during security assessments, all in one place. SecLists helps make security testing more efficient and productive by conveniently providing all the lists a security tester might need. List types include usernames, passwords, URLs, fuzzing payloads, sensitive data patterns, web shells, and more. The tester can simply pull this repository onto a new test machine and he will have access to every type of list he needs.

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

EditPlus Chinese cracked version

EditPlus Chinese cracked version

Small size, syntax highlighting, does not support code prompt function

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

VSCode Windows 64-bit Download

VSCode Windows 64-bit Download

A free and powerful IDE editor launched by Microsoft