Unsere Datenschutzrichtlinie wird in Kürze aktualisiert. Bitte sehen Sie sich die Vorschau an.

Java Grundkurs 3: Generische Programmierung, Datenströme, Datumsrechnung

Das ls-Kommando nachbauen

Testen Sie unsere 2021 Kurse

10 Tage kostenlos!

Jetzt testen Alle Abonnements anzeigen
Lassen Sie sich in diesem Video zeigen, wie Sie die Meta-Informationen aller Einträge aus einem Verzeichnis auf der Konsole ausgeben können.

Transkript

In diesem Video zeige ich Ihnen, wie Sie sich ein Programm erstellen können, das so ähnlich wie das UNIX Betriebssystem Kommando ls funktioniert. Das heißt, wir werden ein Programm schreiben, das nicht nur die Einträge aus einem Dateiverzeichnis auf der Konsole ausgibt, sondern auch gleich die Attribute der Einträge mit aufführt. Zunächst einmal ersetze ich hierfür die Method-Reference in der Methode forEach aus unserem Programm durch einen Lambda-Ausdruck. Als Parameter verwende ich den Bezeichner Path und füge einen Lambda-Operator hinzu. Und hinter dem Lambda-Operator füge ich die geschweiften Klammern für den Lambda-Body bei. Also geschweifte Klammer, so und das Ganze rück ich etwas ein und innerhalb dieses Anweisungs-Blocks verwende ich ein System.out.println. Was jetzt fehlt ist, dass ich die einzelnen Meta Informationen der Einträge abrufe und sie so darstelle, wie man es von einem UNIX-Betriebssystem kennt. Mit der Methode Files Is Directory beispielsweise frage ich ab, ob es sich bei dem Eintrag um ein Verzeichnis handelt. Wenn ja, füge ich jetzt einfach ein kleines D hinzu und ansonsten ein kleines Minus. Das schreibe ich dann hier im System.out.println in den runden Klammern rein. Und zwar setze ich das auch wieder in runde Klammern, Files.isDirectory. So, wenn es sich bei dem Pfad um ein Directory handelt, dann soll ein d ausgegeben werden und ansonsten ein Minus. Und das Ergebnis konkateniere ich mit dem nächsten Eintrag mit einem Plus und dahinter muss ich nun abfragen, ob der Eintrag lesbar ist mit Files.isReadable frage ich ab, ob der Eintrag gelesen werden darf. Wenn ja füge ich ein kleines r ein, ansonsten wieder ein Minus. Also kopiere ich die ganze Zeile. So und jetzt kann ich .isReadable aufrufen. Und dann müsste dort ein r hinkommen und diese Zeile kopiere ich auch wieder mit Files.isWritable frage ich ab, ob der Eintrag beschrieben werden kann. Wenn ja, füge ich ein kleines w hinzu, ansonsten wieder ein Minus. Und wieder kopiere ich die ganze Zeile. Und mit Files.isExecutable erfahre ich, ob es sich um eine ausführbare Datei handelt. Wenn ja, füge ich ein x hinzu. So, für das Nächste muss ich auch wieder die Zeile kopieren. isHidden, mit isHidden erfahre ich, ob es sich um eine versteckte Datei handelt. Wenn ja, setze ich ein h ein und ansonsten wieder ein Minus. Und danach müsste jetzt ein Tab folgen, weil wir die Folgeinformation etwas eingerückt haben möchten. Denn jetzt müsste der Eintrag, also der Name des Owners erfolgen. Ich kopiere wieder die ganze Zeile von darüber und rufe Files.getOwner auf. Und der Eintrag liefert mir ein User Principal und deswegen muss ich dort noch getName aufrufen. Und dahinter folgt dann auch wieder ein Tab. Die Zeile kopiere ich jetzt erneut, denn jetzt brauche ich den Zeitpunkt der Änderung. Den Zeipunkt der letzten Änderung setze ich mit Hilfe der Methode Files.getLastModified. So. Ganz zuletzt benötige ich den Namen des Eintrags. Den liefert mir die Methode getFilename. Ich kopiere jetzt auch wieder eine Zeile darunter und das ist ja mein letzter Eintrag, also Files wäre dann auch falsch. Hier muss dann hin path.getFileName. Und jetzt sehen Sie, dass mir die Methode isHidden und getOwner und auch getLastModified eine IO Exception auslöst und die kann ich nicht einfach nur weiterleiten. Stattdessen muss ich jetzt hingehen und diesen kompletten Ausdruck in eine Try Catch Block Anweisung packen. Also try, so das rücke ich etwas ein. Und dann schließe ich den Try Block an dieser Stelle und jetzt brauche ich einen Catch Block, so und im Catch Block fange ich die IO Exception auf. IOException und die nenne ich einfach e und gebe den StackTrace einfach auf der Konsole aus. So und das muss- das speichere ich ab und dann schauen wir uns mal an, ob das Programm funktioniert. Ich klicke also auf Run App und dann sehen Sie, dass hier unten mein Programm ausgeführt worden ist. Und gut, es könnte etwas besser ausschauen, aber es ist so ähnlich wie ein ls Kommando. In diesem Video habe ich Ihnen gezeigt, wie Sie mit einer einzigen Anweisung einen Stream erzeugen, der die Meta Informationen aller Einträge aus einem Verzeichnis auf der Konsole ausgibt.

Java Grundkurs 3: Generische Programmierung, Datenströme, Datumsrechnung

Steigen Sie tiefer in die Java-Programierung ein und lernen Sie den Umgang mit generischen Typen, Lamda-Ausdrücken, DAtenströmen und mit Datums- und Zeitberechnung.

5 Std. 24 min (47 Videos)
Derzeit sind keine Feedbacks vorhanden...
 
Hersteller:
Software:
Exklusiv für Abo-Kunden
Erscheinungsdatum:09.10.2016

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!