Methoden Der Sinn von system.out.print();

acine123

Mitglied
Hallo,
Ich weiss natürlich was system.out.print() oder system.out.println() bewirkt. Aber ich habe mich vor kurzem gefragt, was nützt einem diese Methode. In Eclipse oder auch in anderen IDE's wird einem der Text der sich in system.out.print() ja in der Konsole angezeigt. Aber wenn wir das Programm als ausführbare Datei speichern wird uns dieser doch garnicht angezeigt oder? Es würde mich interessieren was das dann für einen Sinn hat.
 
Der Sinn ist, das der Text auf dem Standard OUT/ERR ausgegeben wird.

Ob das nun eine Konsole visualisiert oder nicht, soll dem Programierer egal sein.

===

Deine Annahe, dass diese verschwinden, wenn du das Projekt exportierst ist falsch.
 
Diese Methoden sind meisst dazu da, Fehlermeldungen auszugeben. Ich nutze das regelmäsig: läuft ein Programm (sei es nun Java oder eine andere Sprache) starte ich es über die Kommandozeile, reproduziere den Fehler und sehe nach der Asugabe. In 50% der Fälle finde ich so eine Lösung.
Zweitens wird sehr viel Software mit der Intention geschrieben, garkeine GUI zu haben. Sämtliche Server-Software hat keine GUI (zumindest keine fest verbaute) und auch viele andere hilfs-programme die man sich etwa unter Unix installiert haben keine GUI.
 
Wie bereits richtig erwähnt, wird die Ausgabe auf stdout bzw. stderr gemacht, wenn beispielsweise keine GUI notwendig ist oder vorhanden ist.

Ich füge noch hinzu, dass auch sehr gut Logging Ausgaben so eingestellt werden können, das sowohl eine Ausgabe auf die Konsole als auch eine in eine Datei erfolgen können, OHNE das der Code dafür geändert werden muss.

Logging ist meine bevorzugte Art der Ausgabe auf die Konsole.
 
Und merke:
Konsolen Ausgaben immer mit der Console Klasse, sonst sind die Umlaute schnell weg 🙂
 
Zuletzt bearbeitet:
Stellt Methoden für die Kommandozeile bereit, inklusive Passwort Abfragen usw.
Die Unterschiede liegen glaube ich darin, dass Stream Klassen (out) byte weise interpretieren während die reader und writer Klassen es char weise tun. Das console Objekt hat ja eine writer Methode, die wieder ein PrintWriter Objekt liefert, was wieder korrekt formatiert 😉 Anders gesagt, PrintStream und PrintWriter sind die Chefklassen, der Rest sind Komfort Methoden, können aber auch über die Chefs realisiert werden 😀

Stream Klassen sind halt eher was für Binärdaten, also Bilder etc.
Wenn du in der Java Api unter der "System" Klasse schaust, ist out als Feld gelistet mit Typ PrintStream.

Darunter steht:

All characters printed by a PrintStream are converted into bytes using the platform's default character encoding. The PrintWriter class should be used in situations that require writing characters rather than bytes.

Schaut man sich dann PrintStream in der API doku an, dann stehen die Antworten wo der Unterschied zu print() und println() etc. ist 🙂

Anders gesagt, println() macht ne neue Zeile, print() nicht. printf() kann die ausgabe auch noch formatieren und ist wie in der Programmiersprache C anzuwenden. printf("%10s bla", "test") -> füllt z.B. den String auf 10 Zeichen auf und kann somit z.B. eine schriftliche Addition darstellen wo man immer schön untereinander schreibt. Printf() ist definitiv die mächtigste print Methode.

Die JAVA API DOKU sollte man mehr studieren als Bücher. Vieles ist dort in 2 Zeilen erklärt was ein Buch nicht auf 20 Seiten packt.
 
Zuletzt bearbeitet:
Klar kommst ohne aus, nur sauberer ist es Konsolen Ausgaben auch mit der passenden Klasse zu erstellen. Das Ding klinkt sich direkt an eine Console Instanz, man sieht z.B. die Ausgaben in keiner IDE und keine IDE kann direkt in Console Fenster ausgeben, bestenfalls irgendwie umleiten.
 
system.out.print() bringt gar nichts außer Fehler zu produzieren. Java ist case-sensitive, d.h. du musst wirklich System.out.print() schreiben.
 

Zurück
Oben