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.