0

J'ai écrit un code pour talonner le System.out.println et en lui passant l'objet de BuffredReader. Ma question est de savoir comment récupérer l'objet BufferedReader?comment récupérer l'objet BufferedReader à partir de ByeArrayOutputStream

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()); 

    } 
    } 

J'ai essayé d'utiliser this answer mais je reçois l'erreur java.io.StreamCorruptedException: invalid stream header: 6A617661

Répondre

0

Puisque vous avez déjà un ByteArrayOutputStream, vous devriez essayer quelque chose comme ceci:

BufferedReader reader = new BuffererdBeader(new InputStreamReader(
          new ByteArrayInputStream(outcontent.toByteArray()))); 
+0

faisant, le lecteur semble ne pas avoir une méthode readLine() –

+0

Ne pas comprendre, 'BufferedReader' a la méthode' readLine() '. –

+0

oui, mais si j'écris votre code, le reader.readLine n'accède à aucune valeur de la console –