Как восстановить объект 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() ) ) );
Другие вопросы по тегам