What happens when I wrap I/O streams twice?
I know that java I/O uses decorator pattern. But I feel that I understand its wrong. Please clarify difference between two code snippets: snippet 1: PipedInputStream pipedInputStream = new PipedInputStream(); PipedOutputStream pipedOutputStream = new PipedOutputStream(); pipedOutputStream.connect(pipedInputStream); ObjectOutputStream objectOutputStream = new ObjectOutputStream(pipedOutputStream); objectOutputStream.writeObject("this is my string"); ObjectInputStream objectInputStream = new ObjectInputStream(pipedInputStream); System.out.println(objectInputStream.readObject()); This application