Redirectare System.out catre fisier text
Conform documentatiei java, System.out reprezinta
The “standard” output stream. This stream is already open and ready to accept output data. Typically this stream corresponds to display output or another output destination specified by the host environment or user.
ceea ce se poate traduce prin
Fluxul standard de iesire. Este deja deschis si sa accepte deate de iesire. De obicei acest lux corespunde “Standard” de ieşire flux. Acest flux este deja deschisă şi pregătită să accepte date de ieşire. De obicei acest flux trimite datele de iesire catre destinatia specificata de mediul gazda sau de utilizator.
In cele mai multe situatii, programatorii folosesc consola aplicatii pentru “standard output”.
Dar cum facem ca aceste mesaje sa fie trimise catre un fisier?
System.out in java reprezinta reprezinta o instanta pentru PrintStream, deci orice alta instanta PrintStream poate fi folosita ca System.out.
De exemplu daca vrem ca afisarile cu System.out.println sa fie facute in fisierul out.log, trebuie sa creem un PrintStream pentru out.log si apoi setam System.out catre acest stream.
public class AppClass
{
public static void main(String[] args)
{
/* pastram intr-o variabila, valoarea originala pentru System.out */
PrintStream origSystemOut = System.out;
/* setam System.out in fisierul out.log */
System.setOut(new PrintStream(new FileOutputStream(new File("out.log"))));
/* Executam operatii cu System.out si acestea vor fi afisate in fisieurl out.log */
System.out.println("O linie in out.log");
System.out.println("A doua linie din fisier");
/* Revenim la valoarea initiala*/
System.setOut(origSystemOut);
/* mesajele de genul System.out.print vor fi afisate in consola*/
System.out.println("O noua linie, dar in standard output (consola)");
}
}


