In diesen Lektionen erfahren Sie, wie Sie in das Dateisystem lesen und von dort schreiben können.
In diesen Lektionen erfahren Sie, wie Sie in das Dateisystem lesen und von dort schreiben können. Die Legacy-Datei-API wird in vielen älteren Projekten, Frameworks und Bibliotheken verwendet. Trotz ihres Alters ist die Legacy-API nicht veraltet und Sie können sie auch mit den neuesten Java-Versionen verwenden.
Sie werden lernen, wie java.nio.file.Path alles tut, was java.io.File kann, und das in der Regel auf eine bessere Art und Weise, mit den neuen Klassen, die Symlinks, richtige Dateiattribute, Metadaten, ACLs und mehr unterstützen. Wenn Sie mit Dateien oder Pfaden arbeiten, werden Sie wahrscheinlich die Klasse java.nio.file.Files verwenden, und wir werden viele allgemeine Funktionen behandeln, die mit Dateien und Verzeichnissen arbeiten. Die Ein- und Ausgabe umfasst ein breites Spektrum an Quellen, und wir müssen natürlich mit Zeichen- und Byte-Dateiinhalten umgehen. Die NIO-Bibliothek ist vollgestopft mit allem, was wir brauchen, um alle E/A-Anforderungen zu erfüllen, die uns begegnen können.
Lernziele:
- Sie werden die neue NIO-Bibliothek beschrieben
- Sie verstehen, wie man in das Dateisystem liest und schreibt
- Sie werden erläutert, wie man temporäre Dateien erstellt
Fähigkeiten, die du erwirbst
Datei-E/AE/A-ProzessorJava 11Java Advanced ImagingJava-APIsNicht-blockierende E/A (Java)Was Sie lernen werden
- Beschreiben Sie die Java NIO-Bibliothek und ihre Dateibehandlungsfähigkeiten
- Lesen Sie vom Dateisystem und schreiben Sie in das Dateisystem mit Java I/O
- Verwenden Sie java.nio.file.Path anstelle der Legacy-API java.io.File
- Arbeiten Sie mit der Klasse java.nio.file.Files für häufige Datei- und Verzeichnisvorgänge
- Verarbeiten Sie Datei-Metadaten, Attribute, ACLs und Symlinks
- Erstellen Sie temporäre Dateien mit der NIO-Bibliothek
Wichtige Erkenntnisse
- Die Legacy-API java.io.File ist nicht veraltet und funktioniert immer noch mit den neuesten Java-Versionen.
- java.nio.file.Path kann alles, was java.io.File kann, und macht es normalerweise besser, mit Unterstützung für Symlinks, Dateiattribute, Metadaten und ACLs.
- Die Klasse java.nio.file.Files bietet viele allgemeine Funktionen, die auf Dateien und Verzeichnissen funktionieren.
- Ein- und Ausgabe umfassen eine breite Palette von Quellen und erfordern die Verarbeitung von sowohl Zeichen- als auch Byte-Dateiinhalten.
- Der Kurs behandelt Lesen, Schreiben und Arbeiten mit Datei-Metadaten.
Häufig gestellte Fragen
Was behandelt dieser Kurs?
Er behandelt, wie man in das Dateisystem in Java liest und schreibt, einschließlich der NIO-Bibliothek, der Klassen java.nio.file.Path und java.nio.file.Files, Datei-Metadaten und Erstellen von temporären Dateien. Lektionen umfassen Lesen, Schreiben und Datei-Metadaten.
Unterrichtet dieser Kurs die Legacy-Datei-API oder die neuere NIO-Bibliothek?
Beides. Er erklärt die Legacy-Datei-API, die immer noch verwendbar und nicht veraltet ist, während er zeigt, wie java.nio.file.Path und die NIO-Bibliothek die gleiche Arbeit normalerweise besser machen, mit Unterstützung für Symlinks, Dateiattribute, Metadaten und ACLs.
Welche Fähigkeiten werde ich von diesem Kurs erwerben?
Sie werden Fähigkeiten in Datei-I/O, I/O-Verarbeitung, Java 11, Java Advanced Imaging, Java-APIs und Non-Blocking I/O in Java erwerben.
Was sind die Lernziele?
Die Ziele bestehen darin, die neue NIO-Bibliothek zu beschreiben, zu verstehen, wie man in das Dateisystem liest und schreibt, und zu erklären, wie man temporäre Dateien erstellt.
Transkript
Transkript
Hey, und willkommen zurück. Scott Stanlick hier. In diesen Lektionen werden wir einen Blick darauf werfen bei Dateiein-/ausgabe. Und wir werden sehen, wie man Dateien liest, Dateien schreiben, Metadaten über Dateien abrufen. Also möchte ich mit meinem gerechten Spruch beginnen dass Sie in Java die Fähigkeit haben Lesen und Schreiben von Byteströmen, das sind Acht-Bit-Zeichen oder Zeichenströme, die Unicode 16-Bit-Zeichen sind, und es ist eine Überbrückung eingebaut um zwischen Byteströmen zu wechseln und Zeichenströme oder Zeichenströme in Byteströme. Und es gibt viele, viele verschiedene Wege in denen Sie Inhalte lesen können. Aber für Datendruckströme, Pipes, Kanäle, Byte-Arrays, String-Puffer, Objekt-Eingabeströme, die Liste ist lang. Wahrscheinlich ist so ziemlich alles möglich das Sie tun müssten in Bezug auf das Lesen oder Schreiben von Dateien, I/O. Also das erste, was wir uns ansehen werden liest eine kleine Datei mit dieser neuen I/O-Bibliothek, und wir haben eine Datei, das ist tatsächlich eine Java-Datei die wir lesen werden. Wir verwenden die Files-Klasse, die readAllLines-Methode, pass ihm den Pfad und gib ihm den Zeichensatz, das ist UTF-8. Wenn wir also diesen ersten Test durchführen, Ich bekomme einen Stream und ich werde für jede Zeile sagen im Stream oder für jedes Element im Stream, Drucke es aus. So können wir hier sicher genug sehen, das sieht aus wie die Datei FileReadWriteFun, Da ist also die Datei, die wir lesen. Das nächste zeigt uns eine Technik die wir verwenden können, um nicht alle Zeilen einzulesen und denn wenn du eine Monsterdatei hättest, wie eine riesige, sehr große Datei, Möglicherweise haben Sie nicht genügend Speicher, um alle Zeilen zu lesen. Es gibt also ein weiteres Verhalten in der Files-Klasse namens Linien, die genau das tun. Sie streamen und während Sie die Zeilen hier lesen, nur Bits der Datei werden gleichzeitig in den Speicher geladen. Es ist also viel speichereffizienter. Sie erreichen dasselbe, wie wir hier sehen werden. Ich werde trotzdem die gesamte Datei lesen. Aber du liest es in Stücken im Gegensatz zum Lesen der gesamten Datei in den Speicher. Also gleiche Ausgabe, gleicher Inhalt, gleiches Ergebnis eher. Es ist nur ein viel speichereffizienterer Weg Teile einer Datei einzulesen im gegensatz zum ganzen. Und die letzte Lesung, die wir uns ansehen werden ist ein Dateneingangsstrom wo wir die Kontrolle über jedes einzelne Byte haben die wir einlesen im Gegensatz zum Lesen von Zeilen oder allen Zeilen. Nun, der Ansatz, der hier verwendet wird ist, werden wir herausfinden, wie viele Bytes sind auf dem Reader unter diesem Pfad verfügbar. Und wir werden hier ein Byte-Array erstellen und lesen Sie alle Bytes in dieses Byte-Array. Und drucken Sie dann den Inhalt aus des Byte-Arrays als String ausgegeben. Mal sehen. Dies sollte zu derselben Ausgabe führen. Das tut es sicher. Also ich weiß es zu schätzen, dass du zusiehst. Ich danke Ihnen sehr.
Unterwegs lernen
Lerne überall — mit der KnowledgeCity-App schaust du Lektionen unterwegs.