GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Python Technologies
  • Databases
  • Computer Programming
  • Web Development
  • Java Technologies
  • Computer Science
  • Mobile Development
  • Big Data & Analytics
  • Microsoft Technologies
  • DevOps
  • Latest Technologies
  • Machine Learning
  • Digital Marketing
  • Software Quality

This view

  • Original page
  • New address

GeezerVison is showing www.tutorialspoint.com — Java - Reader Class

Java.io Package Tutorial
  • Java.io - Home
  • Java.io - BufferedInputStream
  • Java.io - BufferedOutputStream
  • Java.io - BufferedReader
  • Java.io - BufferedWriter
  • Java.io - ByteArrayInputStream
  • Java.io - ByteArrayOutputStream
  • Java.io - CharArrayReader
  • Java.io - CharArrayWriter
  • Java.io - Console
  • Java.io - DataInputStream
  • Java.io - DataOutputStream
  • Java.io - File
  • Java.io - FileDescriptor
  • Java.io - FileInputStream
  • Java.io - FileOutputStream
  • Java.io - FilePermission
  • Java.io - FileReader
  • Java.io - FileWriter
  • Java.io - FilterInputStream
  • Java.io - FilterOutputStream
  • Java.io - FilterReader
  • Java.io - FilterWriter
  • Java.io - InputStream
  • Java.io - InputStreamReader
  • Java.io - LineNumberInputStream
  • Java.io - LineNumberReader
  • Java.io - ObjectInputStream
  • Java.io - ObjectInputStream.GetField
  • Java.io - ObjectOutputStream
  • io - ObjectOutputStream.PutField
  • Java.io - ObjectStreamClass
  • Java.io - ObjectStreamField
  • Java.io - OutputStream
  • Java.io - OutputStreamWriter
  • Java.io - PipedInputStream
  • Java.io - PipedOutputStream
  • Java.io - PipedReader
  • Java.io - PipedWriter
  • Java.io - PrintStream
  • Java.io - PrintWriter
  • Java.io - PushbackInputStream
  • Java.io - PushbackReader
  • Java.io - RandomAccessFile
  • Java.io - Reader
  • Java.io - SequenceInputStream
  • Java.io - SerializablePermission
  • Java.io - StreamTokenizer
  • Java.io - StringBufferInputStream
  • Java.io - StringReader
  • Java.io - StringWriter
  • Java.io - Writer
  • Java.io - Interfaces
  • Java.io - Exceptions
  • Java.io package Useful Resources
  • Java.io - Discussion
Selected Reading
  • UPSC IAS Exams Notes
  • Developer's Best Practices
  • Questions and Answers
  • Online Resume Builder
  • HR Interview Questions
  • Computer Glossary
  • Who is Who

Java - Reader Class



Previous
Quiz
Next

Introduction

The Java Reader class is a abstract class for reading character streams.

Class declaration

Following is the declaration for Java.io.Reader class −

public class Reader
   extends Object
      implements DataOutput, DataInput, Closeable

Field

Following are the fields for Java.io.Reader class −

  • protected Object lock − This is the object used to synchronize operations on this stream.

Class constructors

Sr.No. Constructor & Description
1

protected Reader()

This creates a new character-stream reader whose critical sections will synchronize on the reader itself.

2

protected Reader(Object lock)

This creates a new character-stream reader whose critical sections will synchronize on the given object.

Class methods

Sr.No. Method & Description
1 abstract void close()

This method closes the stream and releases any system resources associated with it.

2 void mark(int readAheadLimit)

This method marks the present position in the stream.

3 boolean markSupported()

This method tells whether this stream supports the mark() operation.

4 int read()

This method reads a single character.

5 int read(char[] cbuf)

This method reads characters into an array.

6 abstract int read(char[] cbuf, int off, int len)

This method reads characters into a portion of an array.

7 int read(CharBuffer target)

This method attempts to read characters into the specified character buffer.

8 boolean ready()

This method tells whether this stream is ready to be read.

9 void reset()

This method resets the stream.

10 long skip(long n)

This method skips characters.

Methods inherited

This class inherits methods from the following classes −

  • Java.io.Object

Example - Using close() Manually with StringReader

The following example shows the usage of Reader close() method.

ReaderDemo.java

package com.tutorialspoint;

import java.io.IOException;
import java.io.StringReader;

public class ReaderDemo {
   public static void main(String[] args) {
      String data = "This is a sample string.";
      StringReader reader = null;

      try {
         reader = new StringReader(data);

         int ch;
         while ((ch = reader.read()) != -1) {
            System.out.print((char) ch);
         }

      } catch (IOException e) {
         e.printStackTrace();
      } finally {
         if (reader != null) {
            reader.close();
            System.out.println("\nReader closed successfully.");
         }
      }
   }
}

Output

Let us compile and run the above program, this will produce the following result−

This is a sample string.
Reader closed successfully.

Explanation

  • Opens a file sample.txt for reading.

  • Reads characters one by one.

  • close() is called in the finally block to ensure it's always executed.

Example - Mark and Reset within the Limit

The following example shows the usage of Reader mark(int readAheadLimit) method.

ReaderDemo.java

package com.tutorialspoint;

import java.io.BufferedReader;
import java.io.StringReader;
import java.io.IOException;

public class ReaderDemo {
   public static void main(String[] args) {
      String data = "ABCDEFG";
      try (BufferedReader reader = new BufferedReader(new StringReader(data))) {

         System.out.print((char) reader.read()); // A
         reader.mark(3); // Mark after reading 'A'

         System.out.print((char) reader.read()); // B
         System.out.print((char) reader.read()); // C

         reader.reset(); // Go back to after 'A'

         System.out.print((char) reader.read()); // B (again)
         System.out.print((char) reader.read()); // C (again)
         System.out.print((char) reader.read()); // D

      } catch (IOException e) {
         e.printStackTrace();
      }
   }
}

Output

Let us compile and run the above program, this will produce the following result−

ABCBCD

Explanation

  • We mark the position after reading 'A'.

  • After reading 'B' and 'C', we reset() to the marked point.

  • We re-read 'B' and 'C', and then continue.

Example - Using BufferedReader (Supports Mark)

The following example shows the usage of Reader markSupported() method.

ReaderDemo.java

package com.tutorialspoint;

import java.io.BufferedReader;
import java.io.StringReader;

public class ReaderDemo {
   public static void main(String[] args) {
      String data = "Hello World";
      BufferedReader reader = new BufferedReader(new StringReader(data));

      System.out.println("markSupported(): " + reader.markSupported());

      try {
         reader.mark(5); // This is safe
         System.out.println("Marked at start");

         System.out.print((char) reader.read()); // H
         System.out.print((char) reader.read()); // e

         reader.reset(); // Resets to 'H'
         System.out.print("\nAfter reset: ");
         System.out.print((char) reader.read()); // H again
      } catch (Exception e) {
         e.printStackTrace();
      }
   }
}

Output

Let us compile and run the above program, this will produce the following result−

markSupported(): true
Marked at start
He
After reset: H

Explanation

  • BufferedReader supports mark() and reset(), so markSupported() returns true.

  • We use mark() safely and reset to re-read characters.

Tutorix - AI Tutor
Previous Quiz Next
Advertisements
You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.