Home | Ajax | BioInformatics | Dojo | EAI | EJB | Hibernate | J2ME | Java | Java Glossary | Java Servlets | JavaScript | Jboss | JDBC | JDO | Jmeter | JSF | JSP | JUnit | Maven | MySQL | Spring Framework | SQL | Struts | Technology | WAP | Web Services | XML
 
 
Search All Tutorials
  

 
Programming Tutorials: Ajax | Articles | JSP | Bioinformatics | Database | Free Books | Hibernate | J2EE | J2ME | Java | JavaScript | JDBC | JMS | Linux | MS Technology | PHP | RMI | Web-Services | Servlets | Struts | UML
 
Java
  JDO Tutorials
  EAI Articles
  Struts Tutorials
  Java Tutorials
  Java Certification
  Java Applet
Questions
Comments

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:

 

 

                         

Facing Programming Problem?
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

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.

Java String toLowerCase Example
Java String toCharArray Example
Java String substring Example
Java String indexOf Example
Java String startsWith Example
Java String hashCode Example
Java String matches Example
Java String length Example
Java String lastIndexOf Example
Java String isEmpty Example
Java String equalsIgnoreCase Example
Java String equals Example
Java String endsWith Example
Java String copyValueOf Example
Java String contentEquals Example
  EAI Articles
  Java Certification
Tell A Friend
Your Friend Name
Search Tutorials

 

 
 
Browse all Java Tutorials
Java JSP Struts Servlets Hibernate XML
Ajax JDBC EJB MySQL JavaScript JSF
Maven2 Tutorial JEE5 Tutorial Java Threading Tutorial Photoshop Tutorials Linux Technology
Technology Revolutions Eclipse Spring Tutorial Bioinformatics Tutorials Tools SQL
 

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

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

Copyright © 2008. All rights reserved.