Задачу решил, но не понял как это работает. Т.е я создал ByteArrayOutputStream, его же и сделал основным потоком System.out.. Но ведь в этот байтовый поток я ничего не записывал, как поменялась строка?