Условие: В этой задаче необходимо развернуть вывод в обратном порядке с помощью PrintStream. Метод printSomething(String) выводит в поле stream переданную строку. Необходимо развернуть вывод в обратном порядке с помощью PrintStream. В методе main(String[] args) считывается строка с клавиатуры и передается в метод printSomething(String), который записывает полученную строку в поток stream. Твоя задача — в методе main(String[]) развернуть переданную строку с помощью поля outputStream (то есть, outputStream должен хранить в себе перевернутую строку) и вывести в консоли.
public class Solution {
    public static ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
    public static PrintStream stream = new PrintStream(outputStream);

    public static void main(String[] args) throws IOException {
        Scanner scanner = new Scanner(System.in);
        printSomething(scanner.nextLine());
        StringBuilder result = new StringBuilder(outputStream.toString()); //создал объект СБ в который передал строку.
        outputStream.reset(); //сбросили поток
        stream.print(result.reverse()); //записали в поток по новой перевернутую строку.
        System.out.println(result); //вот тут мучился и оказалось, что выводить надо result, а не reversed. ВОПРОС: ПОЧЕМУ? Он же не реверснулся, я просто на его основе записал реверс в стрим. Почему валидатор принял решение так, будто я вывел перевернутую строку?
        //напишите тут ваш код
    }

    public static void printSomething(String str) {
        stream.print(str);
    }
}