
- 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 class
Introduction
The Java PipedReader class represents piped character-input streams.
Class declaration
Following is the declaration for Java.io.PipedReader class −
public class PipedReader extends Reader
Field
Following are the fields for Java.io.PipedReader class −
protected Object lock − This is the object used to synchronize operations on this stream.
Class constructors
Sr.No. | Constructor & Description |
---|---|
1 |
PipedReader() This creates a PipedReader so that it is not yet connected. |
2 |
PipedReader(int pipeSize) This creates a PipedReader so that it is not yet connected and uses the specified pipe size for the pipe's buffer. |
3 |
PipedReader(PipedWriter src) This creates a PipedReader so that it is connected to the piped writer src. |
4 |
PipedReader(PipedWriter src, int pipeSize) This creates a PipedReader so that it is connected to the piped writer src and uses the specified pipe size for the pipe's buffer. |
Class methods
Sr.No. | Method & Description |
---|---|
1 |
void close()
This method closes this piped stream and releases any system resources associated with the stream. |
2 |
void connect(PipedWriter src)
This method causes this piped reader to be connected to the piped writer src. |
3 |
int read()
This method reads the next character of data from this piped stream. |
4 |
int read(char[] cbuf, int off, int len)
This method reads up to len characters of data from this piped stream into an array of characters. |
5 |
boolean ready()
This method tell whether this stream is ready to be read. |
Methods inherited
This class inherits methods from the following classes −
- Java.io.Reader
- Java.io.Object
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 - Connecting PipedReader to PipedWriter and reading text
The following example shows the usage of PipedReader connect(PipedWriter src) 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(); // Connect the reader to the writer reader.connect(writer); // Write data through the writer writer.write("Hello from PipedWriter!"); writer.close(); // Close to signal end of data // Read and print data from reader int data; while ((data = reader.read()) != -1) { System.out.print((char) data); // Output: Hello from PipedWriter! } reader.close(); } catch (IOException e) { e.printStackTrace(); } } }
Output
Let us compile and run the above program, this will produce the following result−
Hello from PipedWriter!
Explanation
The connect(PipedWriter src) method connects the PipedReader to the given PipedWriter.
Once connected, data written to the PipedWriter can be read from the PipedReader.
This is a basic example of one-way character communication between two objects in the same thread.
Example - Reading single characters using read() after connecting to PipedWriter
The following example shows the usage of PipedReader read() 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 via constructor writer.write("ABC"); writer.close(); // Finish writing int ch; while ((ch = reader.read()) != -1) { System.out.print((char) ch); // Output: ABC } reader.close(); } catch (IOException e) { e.printStackTrace(); } } }
Output
Let us compile and run the above program, this will produce the following result−
ABC
Explanation
The read() method reads one character at a time (as an int) and returns -1 when the stream ends.
This example demonstrates synchronous reading of characters written to a pipe.