//Создаём переменную PrintStream чтоб потом (после наших изменией out) всё работало как прежде т.е. System.out.print
PrintStream consoleStream = System.out;
// Создаём массив куда будут складировыаться данные отпраленные в System.out.print
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
//Создаём поток который направит данные в массив
PrintStream stream = new PrintStream(outputStream);
//Подменяем стандартный System.out наш (с потоком в массив) System.Out.(Stream)
System.setOut(stream);
//Вызываем функцию, в которой будет использоваться новый System.out.print
printSomething();
//Преобразовываем данные которые в массиве в строку
String result = outputStream.toString();
// теперь с помощью переменной consoleStream возравщаем как было в начале т.е. масскируем новую System.out.print под старую (стандартную)
System.setOut(consoleStream);
//Здесь проводим операцию со строкой
StringBuilder stringBuilder = new StringBuilder(result);
stringBuilder.reverse();
String reverseString = stringBuilder.toString();
//результат нашей операции со строкой помещаем в новый созданный нами System.out.print
System.out.println(reverseString);
VitalyK #1116124
1 уровень
уровень 9 лекция 7 Помогите пожалуйста - правильно ли я понял обертку для System.out
Решен
Комментарии (2)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
hidden #2170301
11 ноября 2019, 17:40
да , все верно
0
VitalyK #1116124
11 ноября 2019, 18:14
Спасибо
0