C'è uno dei costruttori di String che accetta in input un array di byte: String(byte[] bytes).

Ora, dal momento che stai usando il metodo write(byte[] buf, int off, int len) di PrintStream, l'array dovresti averlo a disposizione...

codice:
byte[] array;
.
.
.
System.out.write(array, 0, array.length);
.
.
.
String stringa = new String(array);