CodeGym /Java-Blog /Random-DE /Java.io.File-Klasse
John Squirrels
Level 41
San Francisco

Java.io.File-Klasse

Veröffentlicht in der Gruppe Random-DE
In vielen Fällen muss das Programm bei seiner Arbeit auf bestimmte Dateien zugreifen. Beispielsweise können Benutzerdaten in einer externen Datei aufgezeichnet werden, und um sie lesen zu können, muss das Programm damit arbeiten können – öffnen, Daten lesen, möglicherweise bearbeiten und schließen können. Zu diesem Zweck verfügt die Programmiersprache Java über die Klasse Java.io.File . In diesem Artikel werden wir untersuchen, um welche Art von Klasse es sich handelt, und ein Beispiel für die Arbeit damit geben.

Was ist die Java-Dateiklasse?

Die File- Klasse ist im java.io- Paket definiert und funktioniert nicht direkt mit Streams. Die Java- Dateiklasse dient der Verwaltung von Informationen über Dateien und Verzeichnisse. Wie Sie wissen, sind Dateien und Verzeichnisse auf Betriebssystemebene unterschiedliche Objekte. In Java werden beide jedoch von derselben File- Klasse beschrieben. Sie fragen sich vielleicht, warum Sie nicht einfach Strings verwenden, um auf Dateien zu verweisen? Erstens, weil der Dateizugriff in verschiedenen Betriebssystemen unterschiedlich ist.

Konstruktoren für Dateiklassen

Abhängig davon, ob das Java.io.File- Klassenobjekt eine Datei oder ein Verzeichnis darstellen soll, können wir einen der Konstruktoren verwenden, um das Objekt zu erstellen: File(String pathname) In diesem Fall erstellt der Konstruktor eine neue Dateiinstanz , indem er den angegebenen Pfadnamen konvertiert string in einen abstrakten Pfadnamen. File(String myPath, String myString) Dieser Konstruktor erstellt eine neue Dateiinstanz aus einer myPath-Pfadnamenzeichenfolge und einer myString-Pfadnamenzeichenfolge. File(File parent, String name) erstellt eine neue Dateiinstanz aus einem abstrakten Dateipfadnamen und einer Namenspfadnamenzeichenfolge. In diesem Fall erstellt der Konstruktor „File(URI uri)“ eine neue Dateiinstanz , indem er den angegebenen Datei-URI in einen abstrakten Pfadnamen konvertiert. URI ist eine Java-Klasse, die eine URI-Referenz (Uniform Resource Identifier) ​​darstellt. Hier ist ein Beispiel für verschiedene Java.io.File -Klassenkonstruktoren:
import java.io.File;
import java.net.URI;
import java.net.URISyntaxException;

public class FileTest {
   public static void main(String[] args) throws URISyntaxException {
       File myFile1 = new File("d:\\MyCat");
       File myFile2 = new File ("d:\\MyCat", "cat.txt");
       File myFile3 = new File(myFile1, "cat.txt");
       URI uri = new URI ("https://docs.oracle.com/javase/7/docs/api/java/net/URI.html");
       File myFile4 = new File(uri);
   }
}

Methoden der Dateiklasse

Die Java- Dateiklasse verfügt über eine Reihe von Methoden, mit denen Sie Dateien und Verzeichnisse bearbeiten können. Betrachten wir einige davon:
  • boolean createNewFile() erstellt eine neue Datei unter dem an den Konstruktor übergebenen Pfad. Gibt bei Erfolg „true“ zurück, andernfalls „false“.

  • boolean delete() löscht ein Verzeichnis oder eine Datei in dem an den Konstruktor übergebenen Pfad. Gibt bei erfolgreichem Löschvorgang true zurück

  • boolean exist() prüft, ob eine Datei oder ein Verzeichnis unter dem im Konstruktor angegebenen Pfad vorhanden ist. Wenn die Datei oder das Verzeichnis vorhanden ist, wird „true“ zurückgegeben, andernfalls wird „false“ zurückgegeben

  • String getAbsolutePath() gibt den absoluten Pfad für den Pfad zurück, der an den Konstruktor des Objekts übergeben wurde

  • String getName() gibt den Kurznamen einer Datei oder eines Verzeichnisses zurück

  • String getParent() gibt den Namen des übergeordneten Verzeichnisses zurück

  • boolean isDirectory() gibt true zurück, wenn der angegebene Pfad ein Verzeichnis enthält

  • boolean isFile() gibt true zurück, wenn sich im angegebenen Pfad eine Datei befindet

  • boolean isHidden() gibt true zurück, wenn das Verzeichnis oder die Datei ausgeblendet ist

  • long length() gibt die Größe der Datei in Bytes zurück

  • long lastModified() gibt den Zeitpunkt zurück, zu dem eine Datei oder ein Verzeichnis zuletzt geändert wurde. Der Wert stellt die Anzahl der Millisekunden dar, die seit der Unix-Epoche vergangen sind

  • String[] list() gibt ein Array von Dateien und Unterverzeichnissen zurück, die sich in einem bestimmten Verzeichnis befinden

  • File[] listFiles() gibt ein Array von Dateien und Unterverzeichnissen zurück, die sich in einem bestimmten Verzeichnis befinden

  • boolean mkdir() erstellt ein neues Verzeichnis und gibt bei Erfolg true zurück

  • boolean renameTo(File dest) benennt eine Datei oder ein Verzeichnis um

Einige Funktionen der Java File-Klasse

  • Der Pfad, abstrakt oder string, kann entweder absolut oder relativ sein. Das übergeordnete Element eines abstrakten Pfads kann durch Aufrufen der Methode getParent() dieser Klasse abgerufen werden.

  • Zuerst sollten wir ein Objekt der File- Klasse erstellen und ihm den Namen einer Datei oder eines Verzeichnisses übergeben. Das Dateisystem kann bestimmte Vorgänge am eigentlichen Dateisystemobjekt einschränken, z. B. Lesen, Schreiben und Ausführen. Diese Einschränkungen werden als Zugriffsberechtigungen bezeichnet.

  • Instanzen der File- Klasse sind unveränderlich. Das bedeutet, dass sich der abstrakte Pfad, der durch das File- Objekt dargestellt wird, nie ändert, sobald Sie eine Datei erstellt haben.

Codebeispiele für Dateiklassen

Lassen Sie uns ein Programm erstellen, das mit Verzeichnissen arbeitet. Zunächst sollte ein Verzeichnis im angegebenen Pfad erstellt werden, dann eine neue Datei erstellt und überprüft werden, ob die Datei und das Verzeichnis vorhanden sind.
import java.io.File;
import java.io.IOException;

public class FileTest2 {
   public static void main(String[] args) throws IOException {

       //create a directory using mkdir() File class method
       File dir = new File("d:\\MyDir");
       boolean created = dir.mkdir();
       if(created)
           System.out.println("Folder has been created...");
       else
           System.out.println("Folder hasn't been created...");
       File myFile = new File("d:\\MyDir\\cat.txt");
       myFile.createNewFile();
       System.out.println("File name: " + myFile.getName());
       System.out.println("Parent folder: " + myFile.getParent());
       if(myFile.exists())
           System.out.println("File exists");
       else
           System.out.println("File not found");
      }
}
Hier ist die Ausgabe:
Ordner wurde erstellt... Dateiname: cat.txt Übergeordneter Ordner: d:\MyDir Datei vorhanden
Übrigens, wenn Sie alles richtig gemacht haben, können Sie auf Ihrem Computer ein neues Verzeichnis und eine neue Datei finden. Schreiben wir nun ein Programm, in dem wir mit dem erstellten Verzeichnis und der Datei arbeiten können. Hier verwenden wir einige der oben beschriebenen Methoden.
import java.io.File;

public class FileTest3 {

   public static void main(String[] args) {

       File dir = new File("d:\\MyDir");
       File myFile = new File("d:\\MyDir\\cat.txt");
       System.out.println("File name: " + myFile.getName());
       System.out.println("Parent folder: " + myFile.getParent());
       if (myFile.exists())
           System.out.println("File exists");
       else
           System.out.println("File not found");

       System.out.println("Absolute path: " + myFile.getAbsolutePath());

       if (myFile.exists()) {
           System.out.println("Is writable: " + myFile.canWrite());
           System.out.println("Is readable: " + myFile.canRead());
           System.out.println("Is a directory: " + myFile.isDirectory());
           System.out.println("myFile Size in bytes = " + myFile.length());

       }
   }
}
Die Ausgabe des Programms ist:
Dateiname: cat.txt Übergeordneter Ordner: d:\MyDir Datei existiert Absoluter Pfad: d:\MyDir\cat.txt Ist beschreibbar: true Ist lesbar: true Ist ein Verzeichnis: false myFile Größe in Bytes = 0
Kommentare
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION