Aktionen

File-Klasse

Aus Java Tutorial - Java lernen

Die Klasse Java File stellt die Dateien und Verzeichnispfadnamen auf abstrakte Weise dar. Diese Klasse wird für die Erstellung von Dateien und Verzeichnissen, Dateisuche, Dateilöschung usw. verwendet.

Das File-Objekt stellt die eigentliche Datei/Verzeichnis auf der Platte dar. Es folgt die Liste der Konstruktoren zum Erstellen eines File-Objekts.

Nummer Methode Beschreibung
1 File(File parent, String child) Dieser Konstruktor erzeugt eine neue Dateiinstanz aus einem übergeordneten abstrakten Pfadnamen und einer untergeordneten Pfadnamenszeichenfolge.
2 File(String pathname) Dieser Konstruktor erzeugt eine neue Dateiinstanz, indem er die angegebene Pfadnamenszeichenfolge in einen abstrakten Pfadnamen umwandelt.
3 File(String parent, String child) Dieser Konstruktor erzeugt eine neue Dateiinstanz aus einer übergeordneten Pfadnamenszeichenfolge und einer untergeordneten Pfadnamenszeichenfolge.
4 File(URI uri) Dieser Konstruktor erstellt eine neue Dateiinstanz, indem er die angegebene Datei konvertiert: URI in einen abstrakten Pfadnamen konvertiert.

Wenn Sie das Dateiobjekt in der Hand haben, dann gibt es eine Liste von Hilfsmethoden, die zur Manipulation der Dateien verwendet werden können.

Nummer Methode Beschreibung
1 public String getName() Gibt den Namen der Datei oder des Verzeichnisses zurück, der durch diesen abstrakten Pfadnamen bezeichnet wird.
2 public String getParent() Gibt die Pfadnamenszeichenkette des übergeordneten Verzeichnisses dieses abstrakten Pfadnamens zurück, oder null, wenn dieser Pfadname kein übergeordnetes Verzeichnis benennt.
3 public File getParentFile() Gibt den abstrakten Pfadnamen des übergeordneten Verzeichnisses dieses abstrakten Pfadnamens zurück, oder null, wenn dieser Pfadname kein übergeordnetes Verzeichnis benennt.
4 public String getPath() Wandelt diesen abstrakten Pfadnamen in eine Pfadnamenszeichenfolge um.
5 public boolean isAbsolute() Prüft, ob dieser abstrakte Pfadname absolut ist. Gibt true zurück, wenn dieser abstrakte Pfadname absolut ist, andernfalls false.
6 public String getAbsolutePath() Gibt die absolute Pfadnamenszeichenfolge dieses abstrakten Pfadnamens zurück.
7 public boolean canRead() Prüft, ob die Anwendung die mit diesem abstrakten Pfadnamen bezeichnete Datei lesen kann. Gibt true zurück, wenn und nur wenn die durch diesen abstrakten Pfadnamen bezeichnete Datei existiert und von der Anwendung gelesen werden kann; andernfalls false.
8 public boolean canWrite() Prüft, ob die Anwendung die durch diesen abstrakten Pfadnamen bezeichnete Datei ändern kann. Gibt true zurück, wenn und nur wenn das Dateisystem tatsächlich eine Datei enthält, die mit diesem abstrakten Pfadnamen bezeichnet ist, und die Anwendung in die Datei schreiben darf; andernfalls false.
9 public boolean exists() Prüft, ob die mit diesem abstrakten Pfadnamen bezeichnete Datei oder das Verzeichnis existiert. Gibt true zurück, wenn und nur wenn die mit diesem abstrakten Pfadnamen bezeichnete Datei oder das Verzeichnis existiert; andernfalls false.
10 public boolean isDirectory() Prüft, ob die mit diesem abstrakten Pfadnamen bezeichnete Datei ein Verzeichnis ist. Gibt true zurück, wenn und nur wenn die mit diesem abstrakten Pfadnamen bezeichnete Datei existiert und ein Verzeichnis ist; andernfalls false.
11 public boolean isFile() Prüft, ob die mit diesem abstrakten Pfadnamen bezeichnete Datei eine normale Datei ist. Eine Datei ist normal, wenn es sich nicht um ein Verzeichnis handelt und darüber hinaus andere systemabhängige Kriterien erfüllt. Jede Nicht-Verzeichnis-Datei, die von einer Java-Anwendung erstellt wird, ist garantiert eine normale Datei. Gibt true zurück, wenn und nur wenn die mit diesem abstrakten Pfadnamen bezeichnete Datei existiert und eine normale Datei ist; andernfalls false.
12 public long lastModified() Gibt die Zeit zurück, zu der die mit diesem abstrakten Pfadnamen bezeichnete Datei zuletzt geändert wurde. Gibt einen Long-Wert zurück, der die Zeit angibt, zu der die Datei zuletzt geändert wurde, gemessen in Millisekunden seit der Epoche (00:00:00 GMT, 1. Januar 1970), oder 0L, wenn die Datei nicht existiert oder ein E/A-Fehler auftritt.
13 public long length() Gibt die Länge der Datei zurück, die durch diesen abstrakten Pfadnamen bezeichnet wird. Der Rückgabewert ist unspezifiziert, wenn dieser Pfadname ein Verzeichnis bezeichnet.
14 public boolean createNewFile() throws IOException Erstellt atomar eine neue, leere Datei mit diesem abstrakten Pfadnamen, wenn und nur wenn eine Datei mit diesem Namen noch nicht existiert. Gibt true zurück, wenn die benannte Datei nicht existiert und erfolgreich erstellt wurde; false, wenn die benannte Datei bereits existiert.
15 public boolean delete() Löscht die mit diesem abstrakten Pfadnamen bezeichnete Datei oder das Verzeichnis. Wenn dieser Pfadname ein Verzeichnis bezeichnet, dann muss das Verzeichnis leer sein, um gelöscht zu werden. Gibt true zurück, wenn und nur wenn die Datei oder das Verzeichnis erfolgreich gelöscht wurde; andernfalls false.
16 public void deleteOnExit() Fordert, dass die durch diesen abstrakten Pfadnamen bezeichnete Datei oder das Verzeichnis gelöscht wird, wenn die virtuelle Maschine beendet wird.
17 public String[] list() Gibt ein Array von Zeichenketten zurück, die die Dateien und Verzeichnisse in dem durch diesen abstrakten Pfadnamen bezeichneten Verzeichnis benennen.
18 public String[] list(FilenameFilter filter) Gibt ein Array von Zeichenketten zurück, die die Dateien und Verzeichnisse in dem durch diesen abstrakten Pfadnamen bezeichneten Verzeichnis benennen, die den angegebenen Filter erfüllen.
19 public File[] listFiles() Gibt ein Array mit abstrakten Pfadnamen zurück, die die Dateien in dem durch diesen abstrakten Pfadnamen bezeichneten Verzeichnis bezeichnen.
20 public File[] listFiles(FileFilter filter) Gibt ein Array mit abstrakten Pfadnamen zurück, die die Dateien und Verzeichnisse in dem durch diesen abstrakten Pfadnamen bezeichneten Verzeichnis bezeichnen, die den angegebenen Filter erfüllen.
21 public boolean mkdir() Erstellt das mit diesem abstrakten Pfadnamen benannte Verzeichnis. Gibt true zurück, wenn und nur wenn das Verzeichnis erstellt wurde; andernfalls false.
22 public boolean mkdirs() Erstellt das mit diesem abstrakten Pfadnamen benannte Verzeichnis, einschließlich aller notwendigen, aber nicht existierenden übergeordneten Verzeichnisse. Gibt true zurück, wenn und nur wenn das Verzeichnis erstellt wurde, zusammen mit allen notwendigen Elternverzeichnissen; andernfalls false.
23 public boolean renameTo(File dest) Benennt die mit diesem abstrakten Pfadnamen bezeichnete Datei um. Gibt true zurück, wenn und nur wenn die Umbenennung erfolgreich war; andernfalls false.
24 public boolean setLastModified(long time) Legt die zuletzt geänderte Zeit der Datei oder des Verzeichnisses fest, die bzw. das mit diesem abstrakten Pfadnamen benannt ist. Gibt true zurück, wenn und nur wenn die Operation erfolgreich war; andernfalls false.
25 public boolean setReadOnly() Markiert die Datei oder das Verzeichnis mit diesem abstrakten Pfadnamen, so dass nur Leseoperationen erlaubt sind. Gibt true zurück, wenn und nur wenn die Operation erfolgreich war; andernfalls false.
26 public static File createTempFile(String prefix, String suffix, File directory) throws IOException Erstellt eine neue leere Datei im angegebenen Verzeichnis und verwendet die angegebenen Präfix- und Suffix-Zeichenfolgen, um ihren Namen zu generieren. Gibt einen abstrakten Pfadnamen zurück, der eine neu erzeugte leere Datei bezeichnet.
27 public static File createTempFile(String prefix, String suffix) throws IOException Erstellt eine leere Datei im Standardverzeichnis für temporäre Dateien und verwendet das angegebene Präfix und Suffix, um ihren Namen zu generieren. Der Aufruf dieser Methode ist gleichbedeutend mit dem Aufruf von createTempFile(Präfix, Suffix, null). Gibt einen abstrakten Pfadnamen zurück, der eine neu erzeugte leere Datei bezeichnet.
28 public int compareTo(File pathname) Vergleicht zwei abstrakte Pfadnamen lexikographisch. Gibt Null zurück, wenn das Argument gleich diesem abstrakten Pfadnamen ist, einen Wert kleiner als Null, wenn dieser abstrakte Pfadname lexikographisch kleiner als das Argument ist, oder einen Wert größer als Null, wenn dieser abstrakte Pfadname lexikographisch größer als das Argument ist.
29 public int compareTo(Object o) Vergleicht diesen abstrakten Pfadnamen mit einem anderen Objekt. Gibt Null zurück, wenn das Argument gleich diesem abstrakten Pfadnamen ist, einen Wert kleiner als Null, wenn dieser abstrakte Pfadname lexikographisch kleiner als das Argument ist, oder einen Wert größer als Null, wenn dieser abstrakte Pfadname lexikographisch größer als das Argument ist.
30 public boolean equals(Object obj) Prüft diesen abstrakten Pfadnamen auf Gleichheit mit dem angegebenen Objekt. Gibt true zurück, wenn und nur wenn das Argument nicht null ist und ein abstrakter Pfadname ist, der dieselbe Datei oder dasselbe Verzeichnis wie dieser abstrakte Pfadname bezeichnet.
31 public String toString() Gibt die Pfadnamenszeichenfolge dieses abstrakten Pfadnamens zurück. Dies ist nur die Zeichenkette, die von der getPath() Methode zurückgegeben wird.

Beispiel

Es folgt ein Beispiel zur Demonstration des File-Objekts:

package com.tutorialspoint;
import java.io.File;

public class FileDemo {
   
   public static void main(String[] args) {
      File f = null;
      String[] strs = {"test1.txt", "test2.txt"};
      try {
         // für jede Zeichenfolge in einem Zeichenfolgenarray 
         for(String s:strs ) {
            // neue Datei erstellen
            f = new File(s);
            
            // true, wenn die Datei ausführbar ist
            boolean bool = f.canExecute();
            
            // den absoluten Pfad finden
            String a = f.getAbsolutePath(); 
            
            // Den absoluten Pfad ausgeben
            System.out.print(a);
            
            // Ausgeben
            System.out.println(" is executable: "+ bool);
         } 
      } catch (Exception e) {
         // wenn irgenein I/O Error auftritt
         e.printStackTrace();
      }
   }
}

Stellen Sie sich vor, es gibt eine ausführbare Datei test1.txt und eine weitere Datei test2.txt, die im aktuellen Verzeichnis nicht ausführbar ist. Lassen Sie uns das obige Programm kompilieren und ausführen. Dies führt zu folgendem Ergebnis: - Die Datei test1.txt ist nicht ausführbar.

Ausgabe

/home/cg/root/2880380/test1.txt is executable: false
/home/cg/root/2880380/test2.txt is executable: false