25
Wiem, jak przekierować standardowe wyjście do pliku, ale nie mam pojęcia, jak przekierować go na ciąg znaków.Przekieruj stdout na ciąg znaków w Javie
Wiem, jak przekierować standardowe wyjście do pliku, ale nie mam pojęcia, jak przekierować go na ciąg znaków.Przekieruj stdout na ciąg znaków w Javie
Tak - można użyć ByteArrayOutputStream
:
ByteArrayOutputStream baos = new ByteArrayOutputStream();
System.setOut(new PrintStream(baos));
Następnie można uzyskać ciąg z baos.toString()
.
Aby określić kodowanie (a nie opierać się na jednym określonym przez platformę), należy użyć konstruktora PrintStream(stream, autoFlush, encoding)
i baos.toString(encoding)
Jeśli chcesz powrócić do pierwotnego strumienia, zastosowanie:
System.setOut(new PrintStream(new FileOutputStream(FileDescriptor.out)));