Implement a program to count number of lines and words in the file
Using a random access file, we can read from a file as well as write to the file. Reading
and writing using the file input and output streams are a sequential process. Using a random
access file, we can read or write at any position within the file. An object of the RandomAccessFile
class can do the random file access. We can read/write bytes and all primitive types values to a file.
RandomAccessFile can work with strings using its readUTF() and writeUTF() methods.
We create an instance of the RandomAccessFile class by specifying the file name and the access mode.
The length( ) method of a RandomAccessFile returns the current length of the file. To read data from random file use read( ) method and to write data into random file use write( ) method.
The following program reads the file contents using RandomAccessFile and count the number of words and line.
PROGRAM
We create an instance of the RandomAccessFile class by specifying the file name and the access mode.
RandomAccessFile raf = new RandomAccessFile("randomtest.txt", "rw");
A random access file has a file pointer that moves forward when we read data from it or write data to it.
We can get the value of file pointer by using its getFilePointer( ) method.
When we create an object of the RandomAccessFile class, the file pointer is set to zero.
We can set the file pointer at a specific location in the file using the seek( ) method. The length( ) method of a RandomAccessFile returns the current length of the file. To read data from random file use read( ) method and to write data into random file use write( ) method.
The following program reads the file contents using RandomAccessFile and count the number of words and line.
PROGRAM
import java.io.*;
class PerformTask
{
void task()
{
char c;
int words=1,lines=1,chars=0;
try
{
RandomAccessFile ff = new RandomAccessFile("test.txt","r");
while(ff.getFilePointer()<ff.length())
{
c = (char)ff.read();
if(c ==' ')
words++;
else if(c=='\n')
{
lines++;
words++;
}
else
chars++;
}
System.out.println("Words = "+words+" lines = "+lines);
}
catch(IOException ie){}
}
public static void main(String args[])
{
PerformTask p = new PerformTask();
p.task();
}
}
OUTPUT
C:\>javac PerformTask.java C:\>java PerformTask Words = 7 lines = 3
Comments
Post a Comment