Задание: В методе main подмени объект System.out написанной тобой ридер-оберткой. Твоя ридер-обертка должна выводить на консоль контекстную рекламу после каждого второго println-а. Вызови готовый метод printSomething(), воспользуйся testString. Верни переменной System.out первоначальный поток. Рекламный текст: "JavaRush - курсы Java онлайн" Пример вывода: first second JavaRush - курсы Java онлайн third fourth JavaRush - курсы Java онлайн fifth По итогу выводит "fifth" и все. Почему не выводит "first", "second" и т д. не знаю что и думать. Почему не работает эта строчка stringBuilder.append(testStringMas[i]) вне всякой логики. При этом в массиве все есть, почему то не добавляет в stringBuilder. public class Solution { public static TestString testString = new TestString(); public static void main(String[] args) { PrintStream consoleStream = System.out; ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); PrintStream printStream = new PrintStream(byteArrayOutputStream); System.setOut(printStream); testString.printSomething(); String testString = byteArrayOutputStream.toString(); System.setOut(consoleStream); String[] testStringMas = testString.split("\\n"); StringBuilder stringBuilder = new StringBuilder(); for (int i = 0; i < testStringMas.length; i++) { System.out.println(testStringMas[i]); stringBuilder.append(testStringMas[i]); /*if (i%2 != 0) { stringBuilder.append("JavaRush - курсы Java онлайн" + "\n"); }*/ } System.out.println(stringBuilder.toString()); } public static class TestString { public void printSomething() { System.out.println("first"); System.out.println("second"); System.out.println("third"); System.out.println("fourth"); System.out.println("fifth"); } } }