Core Java| JSP| Servlets| XML| EJB| JEE5| Web Services| J2ME| Glossary| Questions?

 

 

 

 

 

 

 

 

 

 

 

 

 

Search Tutorials

Latest Questions
Comments
 
Using a Random Access File in Java 
 

In this section, you will learn the Random Access File features provided by java io package.

 

Using a Random Access File 

                         

Introduction

In this section, you will learn about the RandomAccess File class provided by java.io package. This is a class that allows you to read and write arbitrary bytes, text, and primitive Java data types from or to any specified location in a file. As the name suggests, random that means it is not sequential and the data can be read from and written to any specified position in the file. 

 Mostly, Users use the input stream or output stream in a sequential but Unlike the input and output streams java.io. RandomAccessFile is used for both reading and writing files A random access file treats with a large array of bytes stored in the file system and uses the file pointer  to deal with the indexe of that array. This file pointer points the positions in the file where the reading or writing operation has to be done.

Random AccessFile implements the same interfaces as the DataInputStream and the DataOutputStream. Thus it defines the same methods for reading and writing data to a file. 

This program shows the implementation of the RandomAccessFile class. Program takes an input from user to the name of a file and  checks if it exists then it writes the specified string using the method writeChars( ); Otherwise it displays the appropriate message as  "File does not exist".  An IOException may be thrown if the stream has been closed. 

 There are following methods has been used in this program:

RandomAccessFile rand = new RandomAccessFile(file,"rw");

The above code creates an instance of the RandomAccessFile class mentioning the mode in which file has to be opened. The constructor  RandomAccessFile( )  takes two arguments: First is the file name and another is the operation mode (read-write mode). We are opening the file into read and write mode ("rw").

There are following methods that are used in the given program shown as.

rand.seek(file.length()); 

This is the seek( ) method of the RandomAccessFile class has been used to jump the file pointer at the specified. Here, file.length( ) returns the end of the file.

rand.close();

This is the close( ) method of the RandomAccessFile class has been used to close the created the instance of the RandomAccessFile class.

writeBytes( ); 

This the writeBytes( ) method which simply writes the content into the file. This method always append the file content with your specified text.

Here is the code of the program :

import java.io.*;
 


public class RandAccessFile{

    public static void main(String[] argsthrows IOException{


      BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
    System.out.print("Enter File name : ");
    String str = in.readLine();
 
   
File file = new File(str);
    if(!file.exists())
{
 
     
System.out.println("File does not exist.");
  
    
System.exit(0);
 
   
}
   
 
try{
      //Open the file for both reading and writing
      RandomAccessFile rand = new RandomAccessFile(file,"rw")
      
     
rand.seek(file.length());  //Seek to end of file
      rand.writeBytes("Roseindia.net,");  //Write end of file 
 
      
rand.close();
    
  
System.out.println("Write Successfully");
  
  
}
   
 
catch(IOException e)
{
 
   
System.out.println(e.getMessage());

      }
 
 
}

  }


Output of the Program:

C:\nisha>javac RandAccessFile.java

C:\nisha>java RandAccessFile
Enter File name : Filterfile.txt
Write Successfully

Download this example.

The another program reads the characters from a file using the readByte( ) method.

import java.io.*;

public class ReadAccessFile{
  public static void main(String[] argsthrows IOException{
    BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
    System.out.print("Enter File name : ");
    String str = in.readLine();
    File file = new File(str);
    if(!file.exists())
    {
      System.out.println("File does not exist.");
      System.exit(0);
    }
    try{
      //Open the file for both reading and writing
      RandomAccessFile rand = new RandomAccessFile(file,"r")
      int i=(int)rand.length();
      System.out.println("Length: " + i);
         rand.seek(0);  //Seek to start point of file
      for(int ct = 0; ct < i; ct++){
        byte b = rand.readByte(); //read byte from the file
        System.out.print((char)b)//convert byte into char
      }
      rand.close();
    }
      catch(IOException e)
    {
    System.out.println(e.getMessage());
    }
  }
}

Output of the Program:

C:\nisha>java ReadAccessFile
Enter File name : Filterfile.txt
Length: 30
??t h i s i s a f i l e
C:\nisha>

Download this Program:

 

 

                         

» View all related tutorials
Related Tags: c orm form time script object io objects help method sed system ip collection this opera create show for work

Leave your comment:

Name:

Email:

URL:

Title:

Comments:


Enter Code:

Audio Version
Reload Image
 

Note: Emails will not be visible or used in any way, and are not required. Please keep comments relevant. Any content deemed inappropriate or offensive may be edited and/or deleted.

No HTML code is allowed. Line breaks will be converted automatically. URLs will be auto-linked. Please use BBCode to format your text.

Add This Tutorial To:
  Del.icio.us   Digg   Google   Spurl   Blink   Furl   Simpy   Y! MyWeb 

Current Comments

5 comments so far (
post your own) View All Comments Latest 10 Comments:

this tutorial is amazing. i learned something so thanks!!!

Posted by Joan Torres on Thursday, 08.7.08 @ 11:45am | #71529

i Mr Shine Varkey is teacher in St Aloysius College.I want to enquire about biojava.I am a big ass can't read english.Send me a tutorial in hindi.

ThankU
Mr ASS SHINE

Posted by Shine on Saturday, 02.23.08 @ 10:24am | #49577

there is no information related to the project on perl with file handling ...
:(
:(
:(
:(
:(
:(

Posted by shinu on Friday, 02.22.08 @ 14:56pm | #49407

you dont have anything in specific related to random access file to write to a file

Posted by shine on Friday, 02.22.08 @ 14:51pm | #49406

it is nice.
and i also have lot of java projects which are developed myself.

Posted by K C Ananthan on Saturday, 01.19.08 @ 11:10am | #45573

Training Courses
Tell A Friend
Your Friend Name
Software Solutions
Least Viewed
Most Rated
Recently Viewed
Search Tutorials

 

 
 

Home | JSP | EJB | JDBC | Java Servlets | WAP  | Free JSP Hosting  | Search Engine | News Archive | Jboss 3.0 tutorial | Free Linux CD's | Forum | Blogs

About Us | Advertising On RoseIndia.net  | Site Map

India News

Indian Software Development Company | iPhone Development Company in India | Flex Development Company in India | Java Training Delhi | Java Training at Noida |

Send your comments, Suggestions or Queries regarding this site at roseindia_net@yahoo.com.

Copyright © 2008. All rights reserved.