Я знаю, как перенаправить stdout в файл, но я не знаю, как перенаправить его в строку.
Перенаправить stdout в строку в Java
Ответ 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)));