In this section we will discuss about the Reader class in Java.
Java IO Reader
In this section we will discuss about the Reader class in Java.
Reader class is an abstract class in java.io package provided for reading the character streams. This class is a super class of all the classes which are involved in or to facilitate to read (input) the character streams. Classes descended from this class may overrides the methods of this class but the method read(char[], int, int) and close() must be implemented by the subclasses. This class can not be instantiated directly.
Constructor of Reader
Reader() | This is a default constructor which creates a reader for reading character
streams.
In such type of character streams reader synchronization of critical sections is
depend on the reader itself. Syntax : protected Reader() |
Reader(Object lock) | A parameterized constructor which creates a reader for reading character
streams. In such type of character streams reader synchronization of critical
sections is depend on the given object. Syntax : protected Reader(Object lock) |
Methods of Reader class
Methods that must be implemented by its subclasses are as follows :
- close() : This method is used to close the stream as well
as it is used also for releasing the resources associated with the stream.
Syntax : public abstract void close() throws IOException
- read(char[] cbuf, int off, int len) : This method is used
to read the characters of specified length from an array of characters, started
reading from the specified offset 'off'.
Syntax : public abstract int read(char[] cbuf, int off, int len) throws IOException
Commonly used methods of this class are as follows :
- mark(int readAheadLimit) : This method is used to mark the
current position in the stream.
Syntax : public void mark(int readAheadLimit) throws IOException
- markSupported() : This method returns a boolean value
which specifies that whether the mark() operation is supported by this stream or
not.
Syntax : public boolean markSupported()
- read() : This method is used to read the characters (single
character).
Syntax : public int read() throws IOException
- read(char[] cbuf) : This method is used to read
characters from an array of characters.
Syntax : public int read(char[] cbuf) throws IOException
- read(CharBuffer target) : This is used to try to read
character from the specified character buffer.
Syntax : public int read(CharBuffer target) throws IOException
- ready() : This method returns boolean value which specifies
whether this stream is ready to be read characters or not.
Syntax : public boolean ready() throws IOException
- reset() : This method is used to reset the stream.
Syntax : public void reset() throws IOException
- skip(long n) : This method is used to skip over the
characters.
Syntax : public long skip(long n) throws IOException
Example :
An example of Reader class is given here which demonstrate that how character streams reader can be created and how the characters can be read from the stream. In this example I have created a Java class named JavaReaderExample.java into which created an input stream using Reader and FileReader. To read the contents of file used the read() method of Reader class.
Source Code
JavaReaderExample.java
import java.io.Reader; import java.io.FileReader; import java.io.IOException; public class JavaReaderExample { public static void main(String args[]) { Reader rdr = null; try { rdr = new FileReader("file.txt"); int c ; System.out.println(); System.out.println("***** OUTPUT *****"); System.out.println(); while((c= rdr.read()) != -1) { System.out.print((char) c); } System.out.println(); } catch(Exception ex) { System.out.println(ex); } finally { if(rdr != null) { try { rdr.close(); } catch(IOException ioe) { System.out.println(ioe); } } }// end finally }// end main }// end class
Output
When you will execute the above code you will get the output as follows :