Die Dateiverwaltung ist ein Bereich, den viele immer noch als etwas Komplexes oder Veraltetes betrachten. Dies ist jedoch falsch. Die Generierung von Dateien ist für die Entwicklung von Systemen und Anwendungen von entscheidender Bedeutung. Eine Datei kann von der Erzeugung einer TXT- Datei mit bestimmten Zeilen bis zur Erzeugung einer großen XML- Datei reichen, die eine Konfiguration definieren kann.
Die java.io.File-Klasse
Um alles zu erledigen, was das Erstellen einer Datei auf einem System erfordert, verfügt Java über die File- Klasse im Bibliothekspaket, um die Dateneingabe und das Beenden von java.io zu verwalten. Diese Klasse stellt uns verschiedene Methoden zur Verfügung, mit denen wir Vorgänge ausführen können, die vom Erstellen und Löschen von Dateien über das Erstellen von Verzeichnissen bis hin zum Überprüfen von Berechtigungen usw. reichen .
Hauptmethoden
Bevor wir in der Praxis sehen, wie wir die Klasse zum Ausführen von Dateioperationen verwenden können, müssen wir verstehen, dass sie einige ihrer Hauptmethoden ausführen. Damit verfügen wir über eine theoretische Grundlage, an die wir uns wenden können, wenn wir auf ein bestimmtes Problem stoßen, das Verwaltung erfordert von Dateien in unseren Programmen:
Erstellen Sie eine Datei
Die Erstellung einer Datei ist ein Prozess, mit dem wir in das System schreiben, in dem unser Programm ausgeführt wird. Es gibt einen Unterschied zwischen dem Schreiben einer Datei und dem Schreiben innerhalb einer Datei. Der erste Unterschied besagt, dass wir die Datei innerhalb des Systems generieren, den Inhalt jedoch nicht unbedingt hinzugefügt haben. Auf der anderen Seite erfahren wir, dass wir einer vorhandenen Datei Inhalt hinzufügen.
Sie fragen sich vielleicht, warum wir eine leere Datei wollen, eine leere Datei ist nicht nutzlos, sie kann Teil eines größeren Prozesses in einer Anwendung sein, zum Beispiel eine Methode erstellt die Datei und dann ein Ergebnis eines Prozesses, für den eine andere Methode sorgt Daten hinzufügen Dies kann auch bei Validierungen von entscheidender Bedeutung sein, bei denen wir temporäre Dateien generieren, um dem Programm anzuzeigen, in welcher Phase des Prozesses wir uns befinden usw.
Nachfolgend sehen wir einen kleinen Code, in dem wir eine leere Flatfile generieren.
import java.io. *; import java.io.File; öffentliche Klasse CrearArchivos { public static void main (String [] argv) löst IOException {aus if (argv.length == 0) { System.err.println ("Sie müssen einen Namen per Parameter eingeben"); System.exit (1); } for (String filename: argv) { neue Datei (Dateiname) .createNewFile (); } } }
Wir sehen, dass wir zuerst die java.io- Klassen importieren, damit wir mit IOException auf die Ausnahmebehandlung zugreifen können , und dann die java.io.File- Klasse importieren, mit der wir die Dateien direkt bearbeiten können.
Dann erstellen wir unsere Klasse und geben in ihrer Hauptmethode an, dass sie Argumente erhalten soll. Dies tun wir, um die Namen der Dateien dynamisch anzugeben. Da wir einen Namen benötigen, handelt es sich um eine kleine Überprüfung, die angibt, dass das Programm platziert und beendet werden muss, wenn kein Dateiname empfangen wird. Schließlich erstellen wir für jedes erhaltene Argument eine neue Datei, wobei wir eine neue Instanz der File- Klasse erstellen und mit der createNewFile () -Methode die Datei im System generieren.
Wir müssen uns darüber im Klaren sein, dass wir eine Fehlermeldung erhalten, wenn unser Programm nicht über die erforderlichen Berechtigungen zum Erstellen einer Datei in seinem Verzeichnis verfügt. Ohne mehr sehen wir, wie unser Programm aussieht, wenn es in der Konsole ausgeführt wird:
Wir können sehen, wie unsere anfängliche Validierung funktioniert hat, und wenn wir den Namen der Datei übergeben haben, haben wir zur Überprüfung dieser letzten einfach ein Verzeichnis unseres Verzeichnisses erstellt und somit die Existenz der Datei überprüft.
Benennen Sie die Datei um
Eine weitere der häufigsten Operationen, die beim Arbeiten mit Dateien nach dem Schreiben und Löschen ausgeführt werden, ist das Umbenennen. In Java müssen wir einem Prozess folgen, der kompliziert erscheint, aber wie wir in dem Beispiel sehen werden, das der Erklärung beiliegt, ist dies recht einfach zu verstehen.
Sehen wir uns den Code an, den wir zum Umbenennen unserer Datei benötigen:
import java.io. *; import java.io.File; public class RenombrarArchivos { public static void main (String [] argv) löst IOException {aus Dateiobjekt First = neue Datei ("NewFile.txt"); File objectSecond = new File ("FileConNewName.txt"); objectfirst.renameTo (zweites Objekt); } }
Wir importieren die entsprechenden Klassen und Pakete, wobei wir die gleichen wie im vorherigen Beispiel beibehalten.
In der main () -Methode erstellen wir unser erstes Objekt und platzieren den Namen der Datei, die wir im vorherigen Beispiel erstellt haben, in diesem Fall NewFile.txt . Dann erstellen wir ein zweites Objekt mit dem neuen Namen, den wir für unsere Datei wollen, in dem Beispiel haben wir FileOnNameName.txt gewählt.
Schließlich wenden wir auf das erste Objekt die Methode renameTo () an und übergeben als Argument oder Parameter das zweite Objekt, das den neuen Namen für unsere Datei hat. Mal sehen, wie es auf der Konsole aussieht, wenn wir unseren Code ausführen:
Wir haben festgestellt, wie sich der Ordner geändert hat und nun zeigt er unsere neue Datei in Bezug auf die Ausführung des ersten Beispiels für die Dateierstellung.
Eine Datei löschen
Schließlich sehen wir den anderen Vorgang, der bei der Arbeit mit Dateien häufig vorkommt und zu löschen ist. Dies ist möglicherweise einer der einfachsten, da wir nur den Namen der Datei kennen müssen, deren Existenz überprüfen und mit der Löschmethode fortfahren müssen () wo wir den Namen der betreffenden Datei übergeben. Sehen wir uns im folgenden Code an, wie wir dies erreichen:
import java.io. *; import java.io.File; public class Delete File { public static void main (String [] argv) { delete ('FileConNewName.txt'); } public static void delete (String filenameDelete) { versuche { Datei file = neue Datei (fileNameDelete); if (! file.exists ()) { System.err.println ("Die Datei" + filenameDelete + "existiert nicht in diesem Verzeichnis"); zurückkehren; } if (file.delete ()) System.err.println ("** Die Datei" + filenameDelete + "wurde gelöscht **"); sonst System.err.println ("Die Datei konnte nicht gelöscht werden:" + filenameDelete); } catch (SecurityException e) { System.err.println ("Die Datei kann nicht gelöscht werden:" + filenameDelete + "(" + e.getMessage () + ")"); } } }
Wir sehen, dass dieses Programm etwas umfangreicher ist als die vorherigen. Dies liegt an der Tatsache, dass wir eine wiederverwendbare Funktion zum Löschen von Dateien erstellt haben, bei der wir zunächst überprüfen, ob die Datei vorhanden ist, und dann mit dem Löschen fortfahren um zu überprüfen, ob die Datei tatsächlich gelöscht wurde, informieren wir den Benutzer andernfalls darüber, dass die Datei nicht aus dem Dateisystem entfernt werden konnte.
In der Konsole können wir sehen, wie wir diesen Vorgang erfolgreich ausführen konnten. Dazu verwenden wir die Datei, die wir im vorherigen Beispiel umbenannt haben. Wenn wir also eine Liste des Inhalts des Ordners erstellen, werden wir die reflektierte Änderung sehen:
Zum Schluss werden wir versuchen, noch einmal zu löschen, damit wir beobachten können, wie die Validierungen funktionieren:
Damit beenden wir dieses Tutorial. Wir haben gelernt, Dateien zu generieren und zusätzlich zwei der am häufigsten verwendeten Aktionen zur Dateimanipulation auszuführen. Damit können wir diese Techniken in unsere Programme und Anwendungen integrieren und die Vorteile dieser Art von Techniken nutzen kann uns bringen