devxlogo

Using Piped Streams in an Application

Using Piped Streams in an Application

Java’s PipedInputStream and PipedOutputStream classes allow you to write data to an OutputStream object and to read this data from an InputStream object (see the tips “Pass Data Between Threads Using Piped Streams” and “Connecting the Piped Stream Classes“). You can use the two stream classes in an application. Typically, you will create and use the PipedInputStream and PipedOutputStream objects in separate classes and in separate threads. This example shows how the output of the stream “pouts” is piped to the input of the stream “pins”. This is a result of connecting the two streams through the PipedOutputStream constructor on Line 7. On Line 11, the byte array “HELLO” is written out to “pouts.” On Lines 14 and 15, the byte array is read into “inArray” through “pins” and output to the standard output.

 1. public class TestPipedStreams {2. 3.   public static void main(String[] args) {4. 	try {5. 		  6.      PipedInputStream pins = new PipedInputStream();7. 	  PipedOutputStream pouts = new PipedOutputStream(pins);8. 	  9. 	  byte[] outArray = {'H', 'E', 'L', 'L', 'O'};10.   pouts.write(outArray, 0, 5);11.   System.out.println("Wrote " + new String(outArray) + " to pouts");12. 	  13. byte[] inArray = new byte[5];14. pins.read(inArray, 0, 5);15. System.out.println("Read " + new String(inArray) + " from pins
");16. 	}17.  18.     catch (Exception e) {19. 	  e.printStackTrace();20. 	}21.   }
See also  Professionalism Starts in Your Inbox: Keys to Presenting Your Best Self in Email
devxblackblue

About Our Editorial Process

At DevX, we’re dedicated to tech entrepreneurship. Our team closely follows industry shifts, new products, AI breakthroughs, technology trends, and funding announcements. Articles undergo thorough editing to ensure accuracy and clarity, reflecting DevX’s style and supporting entrepreneurs in the tech sphere.

See our full editorial policy.

About Our Journalist