Ciao,
sto facendo delle prove per capire come stampare su un PrintStream al posto del System.out di default.
Ho scritto questo codice:
codice:
import java.io.*;

public class Redir 
{
   public static void main(String [] args) throws Exception 
   {
       PrintStream ps = new PrintStream( new ByteArrayOutputStream() );

       System.out.println("Ciao1");
       
       PrintStream bck = System.out; //backup
       
       System.setOut(ps);

       System.out.println("Ciao2");
              
       System.setOut(bck);

       System.out.println("Ciao3");

       System.out.println(ps.toString());
   }
}
Mi aspettavo che stampasse "Ciao1", "Ciao3" ma anche una forma corretta dell'oggetto ps, che se non ho capito male come usare gli stream dovrebbe contenere "Ciao2".
Invece questo è l'output:
codice:
Ciao1
Ciao3
java.io.PrintStream@3e25a5
Dove sto sbagliando?
Grazie