Allora la strada intrapresa può essere quella giusta, anche se magari prova a dare anche un occhio alle librerie di logging come per esempio Log4j che permette appunto di scegliere cosa e dove far stampare le informazioni di logging.
Il problema tuo è che hai prima di tutto "sbagliato" l'implementazione dell'estensione del PrintStream in particolare l'implementazione del costruttore, quello che ti serve a te è di ridifinire il costruttore che accetta come parametro non il file ma un OutputStream :
codice:
public class PrintStream2 extends java.io.PrintStream{
public PrintStream2(OutputStream out){
super(out);
}
public void println(String s){
}
}
Nel metodo println dovrai appunto mettere la tua logica di stampa in modo da far stampare solamente quello che ti interessa.
codice:
//se la stringa da stampare non contiene "l'intestazione"
if(!s.contains("LA STRINGA CHE VOGLIO CERCARE"))
{
//invoco l'implementazione del metodo della classe padre
super.println(s);
}
Un esempio di utilizzo da fare come prima operazione allo startup dell'applicativo
codice:
PrintStream myStream = new MyPrintStream(System.out);
System.setOut(myStream);