Подтвердить что ты не робот

Перенаправить stdout в строку в Java

Я знаю, как перенаправить stdout в файл, но я не знаю, как перенаправить его в строку.

4b9b3361

Ответ 1

Да - вы можете использовать ByteArrayOutputStream:

ByteArrayOutputStream baos = new ByteArrayOutputStream();
System.setOut(new PrintStream(baos));

Затем вы можете получить строку с baos.toString().

Чтобы указать кодировку (и не полагаться на ту, которая определена платформой), используйте конструктор PrintStream(stream, autoFlush, encoding) и baos.toString(encoding)

Если вы хотите вернуться к исходному потоку, используйте:

System.setOut(new PrintStream(new FileOutputStream(FileDescriptor.out)));