Open In App

Reader close() method in Java with Examples

Last Updated : 24 Oct, 2025
Comments
Improve
Suggest changes
Like Article
Like
Report

In Java, the Reader class provides a way to read character streams. Its close() method is used to close the stream and release any associated resources.

  • If the stream is open, close() closes it and releases any associated resources.
  • If the stream is already closed, calling close() has no effect.
  • Any read or write operation attempted after closing the stream will throw an IOException.

Syntax

public abstract void close()

  • Parameters: This method does not accept any parameters
  • Return Type: This method does not return any value.

Examples of close() Method

Example 1: Reading Characters and Closing the Stream

Java
import java.io.*;

class GFG {

    public static void main(String[] args){

        try {
            String str = "GeeksForGeeks";

            // Create a Reader instance
            Reader reader = new StringReader(str);

            int ch;

            // Read the first 5 characters
            for (int i = 0; i < 5; i++) {
                ch = reader.read();
                System.out.println(
                    "Integer value of character read: "
                    + ch);
                System.out.println("Actual character read: "
                                   + (char)ch);
            }

            // Close the stream
            reader.close();
            System.out.println("Stream Closed.");
        }
        catch (Exception e) {
            System.out.println(e);
        }
    }
}

Output
Integer value of character read: 71
Actual character read: G
Integer value of character read: 101
Actual character read: e
Integer value of character read: 101
Actual character read: e
Integer value o...

Explanation: The first 5 characters of the string "GeeksForGeeks" are read and printed. Calling close() releases the stream resources, marking the end of the reader’s usage.

Example 2: Performing Operations After Closing the Stream

Java
import java.io.*;

class GFG{

    public static void main(String[] args){

        try {

            String str = "GeeksForGeeks";

            // Create a Reader instance
            Reader reader = new StringReader(str);

            // Close the stream
            reader.close();
            System.out.println("Stream Closed.");

            // Attempt to check if the reader is ready
            System.out.println(
                "Is Reader ready to be read? "
                + reader.ready());
        }
        catch (Exception e) {
            System.out.println(e);
        }
    }
}

Output
Stream Closed.
java.io.IOException: Stream closed

Explanation: After calling close(), any attempt to read from or interact with the stream (e.g., ready()) results in an IOException.

Why Use close()?

  • Prevents resource leaks in your program.
  • Ensures that files or network streams are properly released.
  • Mandatory in real-world applications to avoid memory and file descriptor exhaustion.

Note: Using try-with-resources in Java automatically calls close() on streams, making code safer and cleaner.



Explore