mir ist gerade aufgefallen, dass system.err.print(ln) ein durcheinander bei der ausgabe macht, also es wird nicht in der reihenfolge an der konsole ausgegeben, wie es im algorithmus steht... was ist das für komisches (unbrauchbares) zeugs??
danke für deine antwort. habe gemeint, dass err-"output-device" können man NICHT umleiten? (das ist der grund, warum ich es verwenden will...)
dann könnte man ja gerade so gut direkt System.out.println verwendet, oder täusche ich mich da?
und: das gleiche problem scheint auch mit den java.util.logging-sachen zu bestehen. (nein, verwende das schon nicht, sondern eine kombination aus log4j und slf4j...) ist dir das bekannt?
Natürlich kann man die Ein- und Ausgabeströme umbiegen. Die Eingabe erfolgt nicht zwingend per Tastatur, und die Ausgabe ist nicht zwingend auf dem Bildschirm, sondern geht vielleicht in eine Datei. Und diese Datei muss auch nicht auf der lokalen Platte liegen, sondern ist vielleicht nur im Arbeitsspeicher eines Rechners auf der anderen Seite der Erdkugel.
Bin mir nicht ganz sicher, ob ich die Frage verstehe.
Willst du wissen, warum es den normalen Stream und zusätzlich den Fehlerstream gibt, wenn beide auf der Konsole angezeigt werden?
Falls ja, ist das nur das Standardverhalten. Du kannst aber beide Ströme einzeln in deinem Betriebssystem umleiten.
[JAVA=]public class Streams {
public static void main(String[] args) {
System.out.println("output");
System.err.println("error");
}
}[/code]
Der Aufruf [c]java Streams > output.txt 2> error.txt[/c] führt unter Windows dazu, dass die beiden Dateien output.txt (in der output steht) und error.txt (mit error) erzeugt werden.
ich will beide output-"geräte" nutzem, System.err macht die ausgaben aber nicht 1:1 wie sie im quelltext ausgegeben werden, gewisse meldungen geraten durcheinander...
Was ich mit deinem beschriebenen Verhalten assoziiere, sehe ich häufiger in NetBeans, wenn ich Ausgaben an die Konsole mit System.err und System.out mache, dann überlappen die sich: der rote Text von System.err verzahnt sich mit dem schwarzen Text von System.out.
Vielleicht empfiehlt es sich für dich, wenn du für die Ausgabe ein Log-Framework verwendest, wie log4j zum Beispiel. Da kannst du wunderbar abstufen zwischen DEBUG-Information, WARN-Texten und ERROR-Meldungen... Und welcher Kram davon auf die Konsole soll und welcher in einer Datei, etc....
"Was ich mit deinem beschriebenen Verhalten assoziiere, sehe ich häufiger in NetBeans, wenn ich Ausgaben an die Konsole mit System.err und System.out mache, dann überlappen die sich: der rote Text von System.err verzahnt sich mit dem schwarzen Text von System.out."