package com.javarush.task.task19.task1927;
/*
Контекстная реклама
В методе main подмени объект System.out написанной тобой реадер-оберткой.
Твоя реадер-обертка должна выводить на консоль контекстную рекламу после каждого второго println-а.
Вызови готовый метод printSomething(), воспользуйся testString.
Верни переменной System.out первоначальный поток.
Рекламный текст: «JavaRush — курсы Java онлайн»
Пример вывода:
first
second
JavaRush - курсы Java онлайн
third
fourth
JavaRush - курсы Java онлайн
fifth
*/
import java.io.*;
public class Solution {
public static TestString testString = new TestString();
public static void main(String[] args) throws IOException {
PrintStream printOriginal=System.out;
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
PrintStream printStream = new PrintStream(byteArrayOutputStream);
System.setOut(printStream);
testString.printSomething();
System.setOut(printOriginal);
//у нас готов поток байтов byteArrayOutputStream
BufferedReader reader = new BufferedReader(new InputStreamReader(new ByteArrayInputStream(byteArrayOutputStream.toByteArray())));
int count = 1;
while(reader.ready()){
System.out.println(reader.readLine());
if (count % 2 == 0){
System.out.println("JavaRush — курсы Java онлайн");
}
count++;
}
}
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");
}
}
}
В чём может быть проблема? Ведь строки вставляются, и поток PrintStream с конструктором BateArrayOutputStream создается.
package com.javarush.task.task19.task1927;
/*
Контекстная реклама
В методе main подмени объект System.out написанной тобой реадер-оберткой.
Твоя реадер-обертка должна выводить на консоль контекстную рекламу после каждого второго println-а.
Вызови готовый метод printSomething(), воспользуйся testString.
Верни переменной System.out первоначальный поток.
Рекламный текст: «JavaRush — курсы Java онлайн»
*/
import java.io.*;
public class Solution {
public static TestString testString = new TestString();
public static void main(String[] args) throws IOException {
PrintStream printOriginal=System.out;
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
PrintStream printStream = new PrintStream(byteArrayOutputStream);
System.setOut(printStream);
testString.printSomething();
System.setOut(printOriginal);
//у нас готов поток байтов byteArrayOutputStream
BufferedReader reader = new BufferedReader(new InputStreamReader(new ByteArrayInputStream(byteArrayOutputStream.toByteArray())));
int count = 1;
while(reader.ready()){
System.out.println(reader.readLine());
if (count % 2 == 0){
System.out.println("JavaRush — курсы Java онлайн");
}
count++;
}
}
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");
}
}
}