Вопрос к знатокам.
Почему с таким кодом после возврата потока к исходному
StringBuilder sb = new StringBuilder(result);
sb.append(result.toUpperCase());
String inUpperCase = sb.toString();
System.out.println(inUpperCase);
строка выводится в консоль в неизменённом виде, а потом в UpperCase???
package com.javarush.task.task19.task1911;
import java.io.ByteArrayOutputStream;
import java.io.PrintStream;
/*
Ридер обертка
*/
public class Solution {
public static TestString testString = new TestString();
public static void main(String[] args) {
PrintStream consoleStream = System.out;
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
PrintStream stream = new PrintStream(outputStream);
System.setOut(stream);
testString.printSomething();
String result = outputStream.toString();
System.setOut(consoleStream);
StringBuilder sb = new StringBuilder(result);
sb.append(result.toUpperCase());
String inUpperCase = sb.toString();
System.out.println(inUpperCase);
}
public static class TestString {
public void printSomething() {
System.out.println("it's a text for testing");
}
}
}