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