
- 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 package Useful Resources
- Java.io - Discussion
Java - PipedReader close() method
Description
The Java PipedReader close() method closes this piped stream and releases any system resources associated with the stream.
Declaration
Following is the declaration for java.io.PipedReader.close() method.
public void close()
Parameters
NA
Return Value
This method does not return a value.
Exception
IOException − If an I/O error occurs.
Example - Usage of PipedReader close() method
The following example shows the usage of PipedReader close() method.
PipedReaderDemo.java
package com.tutorialspoint; import java.io.IOException; import java.io.PipedReader; import java.io.PipedWriter; public class PipedReaderDemo { public static void main(String[] args) { // create a new Piped writer and reader PipedWriter writer = new PipedWriter(); PipedReader reader = new PipedReader(); try { // connect the reader and the writer reader.connect(writer); // write something writer.write(70); writer.write(71); // read what we wrote for (int i = 0; i < 2; i++) { System.out.println("" + (char) reader.read()); } // close the reader System.out.println("Closing reader..."); reader.close(); System.out.println("Reader closed."); } catch (IOException ex) { ex.printStackTrace(); } } }
Output
Let us compile and run the above program, this will produce the following result −
F G Closing reader... Reader closed.
Example - Closing a PipedReader after reading from a connected PipedWriter
The following example shows the usage of PipedReader close() method.
PipedReaderDemo.java
package com.tutorialspoint; import java.io.PipedReader; import java.io.PipedWriter; import java.io.IOException; public class PipedReaderDemo { public static void main(String[] args) { try { PipedReader reader = new PipedReader(); PipedWriter writer = new PipedWriter(reader); // Connect streams writer.write("Hello, Reader!"); writer.close(); // Finish writing int data; while ((data = reader.read()) != -1) { System.out.print((char) data); } reader.close(); // Close the reader after reading is complete System.out.println("\nPipedReader closed successfully."); } catch (IOException e) { e.printStackTrace(); } } }
Output
Let us compile and run the above program, this will produce the following result−
Hello, Reader! PipedReader closed successfully.
Explanation
The close() method is used to release system resources held by the PipedReader.
After the data is fully read, closing the stream is necessary to avoid resource leaks.
Always close both ends (PipedReader and PipedWriter) when done.
Example - Using close() in a consumer thread
The following example shows the usage of PipedReader close() method.
PipedReaderDemo.java
package com.tutorialspoint; import java.io.PipedReader; import java.io.PipedWriter; import java.io.IOException; public class PipedReaderDemo { public static void main(String[] args) throws IOException { PipedReader reader = new PipedReader(); PipedWriter writer = new PipedWriter(reader); // Connect the pipe Thread producer = new Thread(() -> { try { writer.write("Streaming data to reader..."); writer.close(); // Signal end of data } catch (IOException e) { e.printStackTrace(); } }); Thread consumer = new Thread(() -> { try { int ch; while ((ch = reader.read()) != -1) { System.out.print((char) ch); } reader.close(); // Close reader after reading is done System.out.println("\nReader closed."); } catch (IOException e) { e.printStackTrace(); } }); producer.start(); consumer.start(); } }
Output
Let us compile and run the above program, this will produce the following result−
Streaming data to reader... Reader closed.
Explanation
The producer writes characters to the PipedWriter and then closes it.
The consumer reads from the PipedReader, and once done, calls close() to clean up.
Properly closing the reader prevents memory/resource leaks in long-running applications.