Standard OutputStream out wiederherstellen

Status
Nicht offen für weitere Antworten.

gnaarf

Mitglied
hi,

ich habe mit

Code:
System.setOut(new PrintStream(new FileOutputStream("dateiname")));

zeitweise den konsolen output in eine dtaei umgeleitet und würde nun wieder den output auf die konsole bekommen...aber irgendwie bekomm ich es nicht hin

Code:
System.setOut(new PrintStream(OutputStream out));

oder

Code:
System.setOut(new PrintStream(new OutputStream()));

klappen nicht...das kann doch wohl nicht so schwer sein??? :autsch: :### :shock:
 
Du kannst die geschrieben Datei mit InputStreamReader und BufferedReader auslesen.
Aber wenn du das jetzt direkt ausgeben willst, weiss ich auch nicht weiter, aber mein Vorschlag müsste auch funktionieren.

Liebe Grüße
Reality
 
Reality hat gesagt.:
Du kannst die geschrieben Datei mit InputStreamReader und BufferedReader auslesen.
Aber wenn du das jetzt direkt ausgeben willst, weiss ich auch nicht weiter, aber mein Vorschlag müsste auch funktionieren.

Liebe Grüße
Reality

upsi 🙂
hab mich etwas ungenau ausgedrückt -sorry

also ich will jetzt nicht den dateiinhalt wieder auf die konsole bekommen, sondern ganz normale System.out.print...
also sprich bis zu einer bestimmten stelle sollen diese system.outs in die datei geschrieben werdne...DANACH möchte ich aber wieder das der rest auf die konsole ausgegeben wird ???:L
 
Am einfachsten wäre sicher ein Backup des ursprünglichen System.out zu machen. Also irgendwie so:
Code:
OutputStream outBackup = System.out;
System.setOut(new PrintStream(new FileOutputStream("dateiname")));

// Und dann irgendwann
System.setOut(outBackup);

Ich hab' das zwar jetzt nicht getestet, aber so ähnlich müsste es funktionieren ???:L .
 
🙂 Also, folgendes ist getestet:

Code:
import java.io.*;
public class Test {
	static PrintStream sysOutBkup = new PrintStream(System.out,true);
	public static void main(String[] a) {
		System.setOut(System.err);
		System.out.println("ERR missbraucht!");
		System.setOut(sysOutBkup);
		System.out.println("OUT wiederhergestellt");
	}
}

System.out und System.err sind PrintStreams, in der Vererbungshierarchie unter dem OutputStream. Es gibt da einen PrintStream-Konstruktor mit 2 Parametern, der erste ist ein OutputStream, der zweite ein boolean (autoflush) - damit wird eine Ausgabe bei jedem "\n" erzwungen.

Viel Spaß beim Coden,
Jürgen
 
danke für den tip mit dem "backup" 🙂
das hat tatsächlich geklappt 😀

Code:
OutputStream outBackup = System.out;
System.setOut(new PrintStream(outBackup));

:toll:
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben