Mah... credo che abbiano deciso di usare DataInputStream per avvalersi del metodo readUTF() che permette di leggere una sequenza di byte da uno stream ed ottenere già una stringa UTF.

Usando solo PipedInputStream, non si beneficia di questo metodo e la stringa va costruita (tenendo conto di eventuali charset encoding).

PS: credo che il codice del primo listato sia anche errato:

codice:
str = iStream.read([oStream]);
Questa linea non compilerebbe.


Ciao.