Video: JAVA Grundkurs #14 - Dateien lesen und schreiben [Tutorial] 2024
Viele Java-Programme lesen Zeichen von der Tastatur des Computers. Diese Programme verwenden Dinge wie Scanner, System. in und nextDouble - Dinge, die in Java's API definiert sind. Das DoPayroll-Programm in dieser Liste gibt dieser Geschichte einen neuen Dreh. Anstatt Zeichen von der Tastatur zu lesen, liest das Programm Zeichen aus der EmployeeInfo. txt-Datei. Die Datei befindet sich auf der Festplatte Ihres Computers.
importiert Java. Nutz. Scanner; Java importieren. io. Datei; Java importieren. io. IOException; öffentliche Klasse DoPayroll {public static void main (Zeichenfolge args []) löst IOException aus {Scanner diskScanner = neuer Scanner (neue Datei ("EmployeeInfo. txt")); für (int empNum = 1; empNum <= 3; empNum ++) {payOneEmployee (diskScanner);} diskScanner. close ();} statisch void payOneEmployee (Scanner aScanner) {Angestellter anEmployee = neuer Angestellter (); ein Angestellter. setName (aScanner. nextLine ()); ein Angestellter. setJobTitle (aScanner. nextLine ()); ein Angestellter. cutCheck (aScanner. nextDouble ()); ein Scanner. nextLine ();}}
Um Zeichen aus einer Datei zu lesen, verwenden Sie einige Dinge, die Ihnen beim Lesen von Zeichen auf der Tastatur helfen. Sie verwenden Scanner, nextDouble und andere Goodies. Aber zusätzlich zu diesen Goodies, haben Sie ein paar zusätzliche Hürden zu springen. Hier ist eine Liste:
-
Sie benötigen ein neues Datei Objekt. Um genauer zu sein, benötigen Sie eine neue Instanz der File-Klasse der API. Sie erhalten diese neue Instanz mit dem Code
new Datei ("EmployeeInfo. Txt")
Das Zeug in Anführungszeichen ist der Name einer Datei - eine Datei auf der Festplatte Ihres Computers. Die Datei enthält Zeichen.
An diesem Punkt macht die Terminologie Berge aus Maulwurfshügeln. Sicher, die Phrasen new File object und new File instance erscheinen , aber alles, was Sie tun, ist, neue Datei ("EmployeeInfo. Txt") für eine Datei auf Ihrer Festplatte. Nachdem Sie eine neue Datei ("EmployeeInfo. Txt") in den neuen Scanner verschoben haben,
Scanner diskScanner = neuer Scanner (neue Datei ("EmployeeInfo. Txt"));
Sie können alles über das neue Dateigeschäft vergessen. Ab diesem Zeitpunkt steht diskScanner für die EmployeeInfo. txt Dateiname auf der Festplatte Ihres Computers. (Der Name diskScanner steht für eine Datei auf Ihrer Festplatte, genau wie in früheren Beispielen, der Name Keyboard steht für die Tasten, die Sie Tag für Tag drücken.)
Das Erstellen eines neuen Dateiobjekts in der Auflistung entspricht dem Erstellen eines neuen Mitarbeiterobjekts später in derselben Auflistung. Der einzige Unterschied besteht darin, dass die Employee- und Account-Klassen in den Beispielen dieses Buchs definiert sind.Die File-Klasse ist in der Java-API definiert.
Wenn Sie eine Verbindung zu einer Festplattendatei mit dem neuen Scanner herstellen, vergessen Sie nicht den neuen Dateiteil. Wenn Sie einen neuen Scanner ("EmployeeInfo.txt") ohne neue Datei schreiben, wird der Compiler nichts dagegen haben. (Sie erhalten keine Warnungen oder Fehlermeldungen, bevor Sie den Code ausführen.) Aber wenn Sie den Code ausführen, erhalten Sie nichts wie die Ergebnisse, die Sie erwarten, zu erhalten.
-
Sie müssen die Klasse Datei mit ihrem vollen Namen - java angeben. io. Datei . Sie können dies mit einer Importdeklaration wie in der Auflistung tun. Alternativ können Sie Ihren Code mit einer Anweisung wie
Scanner diskScanner = new Scanner (neue java. Io. Datei ("EmployeeInfo. Txt")) überladen;
-
Sie benötigen eine -Klausel der IOException -Klausel. Viele Dinge können schief gehen, wenn Ihr Programm eine Verbindung zu EmployeeInfo herstellt. txt. Zum einen hat Ihre Festplatte möglicherweise keine Datei namens EmployeeInfo. txt.
-
Zum anderen die Datei EmployeeInfo. txt befindet sich möglicherweise im falschen Verzeichnis. Um diese Art von Unheil zu vermeiden, trifft die Programmiersprache Java bestimmte Vorsichtsmaßnahmen. Die Sprache besteht darauf, dass wenn eine Plattendatei beteiligt ist, Sie die möglichen Gefahren des Aufrufs eines neuen Scanners bestätigen.
Sie können die Gefahren auf verschiedene Arten bestätigen, aber der einfachste Weg ist die Verwendung einer throws-Klausel. In der Auflistung endet der Header der Hauptmethode mit den Worten und gibt IOException aus. Durch Hinzufügen dieser beiden Wörter beschwichtigen Sie den Java-Compiler.
Es ist, als würdest du sagen: "Ich weiß, dass das Aufrufen eines neuen Scanners zu Problemen führen kann. Du musst mich nicht daran erinnern. "Und tatsächlich, das Hinzufügen von IOException zu Ihrer Hauptmethode hält den Compiler davon ab, sich zu beschweren. (Ohne diese Throws-Klausel erhalten Sie eine nicht gemeldete Ausnahmefehlermeldung.)