Как восстановить объект BufferedReader из ByeArrayOutputStream
Я написал код, чтобы заглушить System.out.println
и передавая объект BuffredReader
внутрь. Мой вопрос, как восстановить BufferedReader
объект?
import java.io.*;
class Test {
public static void main(String args[]) throws IOException {
// stubbing the default print statement
ByteArrayOutputStream outcontent = new ByteArrayOutputStream();
System.setOut(new PrintStream(outcontent);
//createing a BufferedReader obj and passing to print
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.println(br);
//trying to get the value from the outcontent and
// but i need to serialise this to BufferedReader
System.err.println(outContent.toString());
}
}
Я пытался использовать этот ответ, но я получаю ошибку java.io.StreamCorruptedException: invalid stream header: 6A617661
1 ответ
Так как у вас уже есть ByteArrayOutputStream
, вы должны попробовать что-то вроде этого:
BufferedReader reader = new BuffererdBeader( new InputStreamReader(
new ByteArrayInputStream( outcontent.toByteArray() ) ) );