by Dinesh Thakur Category: Stream

RandomAccessFile provides you to read or write data from or to in a file at any location. It supports you to move around the file, and read from it and write to it, where ever you like.


It has these two constructors:


RandomAccessFile(File fileObj, String accessType) throws FileNotFoundException


here, fileObj specifies the name of the file to open as a File object.


RandomAccessFile(String filename, String accessType) throws



here, the name of the file is passed in filename as string.




RandomAccessFile fileObj = new RandomAccessFile("a.txt", "rw);


In both constructors, accessType determines what type of file access is permitted. There are following cases, if access Type is:


"r", then the file can be read, not written

"rw", then file is opened in read-write mode.

"rws", then file is opened in read-write mode, both operations can be performed, and every changes to file will update to underlying file written on physical device.

To search or seek a position to perform either operation seek() method is used and it's prototype is

given below:

void seek(long newposition) throws IOException


Here, newPosition specifies the new position, in bytes, of the file pointer from where next read or write operation will occur at the new file position.

The current position of the file pointer can be obtained by calling the getPilePointer() method.




RandomAccessFile fileObj = new RandomAccesSFile("a.txt", "rw);;

long pointer = fileObj.getFilepointer();



RandomAccessFile includes some additional methods. One of them is setLength( ). It has this signature:

void setLength(long length) throws IOException


This method is used to fix the length of the file.


Reading from a RandomAccessFile is done using one read() methods.




RandomAccessFile fileObj = new RandomAccesSFile("a.txt", "rw);

int a =;



Writing to a RandomAccessFile can be done using one it its many write() methods.




RandomAccessFile file = new RandomAccesSFile("c:\\data\\file.txt", "rw);

file.write("Hello World".getBytes());



Example: Write to a file





public class RandomAccess


public static void main(String ar[])




RandomAccessFile raObject = new RandomAccessFile("a.txt", "rw") ;

String data[] = new String[5];

data[0] ="Learning";

data[1] = "Random";

data[2] = "Access";

data[3] = "File";

data [4] = " class.";

for (int i = 0; i < data. length; i++)




raObject.writeUTF("Now I now how to work with RandomAccessFile");


catch (FileNotFoundException e)




catch (IOException e)









About Dinesh Thakur

Dinesh ThakurDinesh Thakur holds an B.C.A, MCSE, MCDBA, CCNA, CCNP, A+, SCJP certifications. Dinesh authors the hugely popular blog. Where he writes how-to guides around Computer fundamental , computer software, Computer programming, and web apps. For any type of query or something that you think is missing, please feel free to Contact us.

Related Articles