Ok, immer gut selbst die Lösung zu finden!
Allerdings verstehe ich momentan nicht so den Sinn dieser Programmzeilen
StringBuffer sb = new StringBuffer();
byte[] ba = sb.toString ().getBytes();
ByteArrayInputStream bais = new ByteArrayInputStream(ba);
Man sollte ja davon ausgehen das in dem Stringbuffer ein bestimmter Text enthalten ist. Diesen speicherst du in den ba - Array. Welchen du dann wiederum dem ByteArrayInputStream als Puffer zur Verfügung stellst. Wenn du nun mit diesem etwas einliest, sollten alle Daten die sich in dem Array befinden (der Text) überschrieben werden...
Ich frage mich immernoch was du damit bezweckst..?