Heim Java javaLernprogramm Dateiübersicht und Einführung in die Verwendung

Dateiübersicht und Einführung in die Verwendung

Jun 21, 2017 am 09:34 AM
file 递归

Dateiübersicht
java.io.File-Klasse: Abstrakte Darstellung von Datei- und Verzeichnispfadnamen.
Wird zur Beschreibung von Dateien, Ordnern und Pfadklassen im Computer verwendet.

Drei häufig verwendete Wörter im Zusammenhang mit Datei:
Datei: Datei
Verzeichnis: Datei Ordner ( Verzeichnis)
Pfad: Pfad
Datei ist eine Klasse, die nichts mit dem System zu tun hat

Drei überladene Konstruktionsmethoden der Dateiklasse
Pfad:
Verzeichnistrennung des Fensters system Das Symbol ist ein
. Das Verzeichnistrennzeichen in Java ist: \ oder /
Klassifizierung von Pfaden:
Absoluter Pfad: Pfad, der mit einem Laufwerksbuchstaben beginnt
Zum Beispiel: D:\ase\20170514\day10
D:\Work_EE_266\day10\src
Relativer Pfad: Relativ zum aktuellen Projekt, Sie können den Laufwerksbuchstaben weglassen, wenn Schreiben des Pfads in „Pfad zwischen Projekten“
D:\Work_EE_266\day10-->src

Hinweis: Bei Lu Jin wird die Groß-/Kleinschreibung nicht beachtet.
Datei (übergeordnete Datei, untergeordnete Zeichenfolge)
Übergabe path , übergeben Dateityp übergeordneter Pfad, String-Typ untergeordneter Pfad
Vorteile: Der übergeordnete Pfad ist Dateityp, der übergeordnete Pfad kann die Methode der Dateiklasse direkt aufrufen
Datei (String Parent, String Child)
Pass Pfad, Übergabe Übergeordneter Pfad vom Typ Zeichenfolge, Unterpfad vom Typ Zeichenfolge
Vorteile: Es ist flexibler, den übergeordneten Pfad und den Unterpfad getrennt zu betreiben, und der Pfad kann separat als Parameter übergeben werden
Datei ( Zeichenfolge (Pfadname)
Pfadname übergeben: Sie können in einen Ordner oder eine Datei schreiben
c:\abc c:\abc\Demo.java
Sie können ihn erstellen, unabhängig davon, ob der Pfad vorhanden ist oder nicht Groß- und Kleinschreibung wird nicht beachtet

 1 public static void main(String[] args) { 2         /* 3          * static String pathSeparator 与系统有关的路径分隔符,为了方便,它被表示为一个字符串。 
 4          * static char pathSeparatorChar  与系统有关的路径分隔符。 
 5          * static String separator  与系统有关的默认名称分隔符,为了方便,它被表示为一个字符串。 
 6          * static char separatorChar  与系统有关的默认名称分隔符。 
 7          */ 8         String pathSeparator = File.pathSeparator; 9         System.out.println(pathSeparator);//路径分隔符 windows 分号; linux 冒号:10         11         String separator = File.separator;12         System.out.println(separator);//目录名称分隔符windows 反斜杠\  linux 正斜杠/13         14         /*15          * System类中的方法16          * static String getProperty(String key) 获取指定键指示的系统属性。 
17          * file.separator 文件分隔符(在 UNIX 系统中是“/”) 
18          * path.separator 路径分隔符(在 UNIX 系统中是“:”) 
19          * line.separator 行分隔符(在 UNIX 系统中是“/n”) 
20          */21         System.out.println(System.getProperty("file.separator"));22         System.out.println(System.getProperty("line.separator"));23         System.out.println(System.getProperty("path.separator"));24     }
Nach dem Login kopieren

Funktion zum Erstellen und Löschen von Dateiklassen
Funktion zum Löschen von Dateiklassen
boolean delete()
Löschen Dateien oder Ordner, im Dateikonstruktor. Gegeben in
Gibt true zurück, wenn das Löschen erfolgreich ist, false, wenn das Löschen fehlschlägt (existiert nicht, es gibt Inhalte im Ordner)
Die Löschmethode wird nicht in den Papierkorb verschoben. Direkt von der Festplatte löschen
Das Löschen ist riskant, bitte vorsichtig vorgehen


Funktion zum Erstellen von Dateiordnern
boolean mkdir() kann nur einschichtige Ordner erstellen
boolean mkdirs() kann sowohl einschichtige Ordner als auch einen mehrschichtigen Ordner erstellen
Der erstellte Pfad wird auch in der Dateierstellungsmethode angegeben
Wenn der Ordner bereits vorhanden ist, wird er nicht erstellt


Dateifunktion zum Erstellen einer Datei
boolean createNewFile()
Der erstellte Dateipfad und der Dateiname werden in der Dateikonstruktionsmethode angegeben
Wenn die Datei existiert bereits, es wird nicht erstellt und gibt false zurück
Es können nur Dateien erstellt werden, keine Ordner (Achten Sie auf den Typ, achten Sie nicht auf das Suffix)
Der Pfad zum Erstellen des Ordners muss vorhanden sein

Die Beurteilungsfunktion der File-Klasse
boolean isDirectory()
Beurteilen Sie die Dateikonstruktionsmethode. Ob der gekapselte Pfad ein Ordner ist.
Wenn es sich um einen Ordner handelt, geben Sie true zurück, wenn kein Ordner, geben Sie false zurück
boolean isFile()
Bestimmen Sie, ob der gekapselte Pfad in der Dateikonstruktionsmethode eine Datei ist
boolean exist()
Bestimmen Sie, ob der gekapselte Pfad in der Dateikonstruktionsmethode existiert
True zurückgeben, wenn es existiert, false, wenn es nicht existiert

Funktion der File-Klasse abrufen
String getParent() Gibt String-Objekt zurück
File getParentFile() Gibt das File-Objekt zurück
Ruft den übergeordneten Pfad ab und gibt den übergeordneten Pfad am Ende der Datei zurück

long length()
Gibt die Anzahl der Bytes der im Pfad dargestellten Datei zurück, Ordner Keine Größe

String getPath() Konvertieren Sie diesen abstrakten Pfadnamen in einen Pfadnamen-String.
Identisch mit toString

String getName()
Gibt den im Pfad dargestellten Datei- oder Ordnernamen zurück
Ruft den Namen des letzten Teils des Pfads ab

Datei getAbsoluteFile () gibt die absolute Pfadnamenform dieses abstrakten Pfadnamens zurück.
String getAbsolutePath() Gibt die absolute Pfadnamenzeichenfolge dieses abstrakten Pfadnamens zurück.
Holen Sie sich den absoluten Pfad


Methoden zum Durchlaufen von Verzeichnissen list und listFiles
Hinweise:
1. Der durchquerte Pfad kann nur ein Verzeichnis sein
2. Das durchquerte Verzeichnis muss vorhanden sein
andernfalls wird eine Nullzeigerausnahme ausgelöst

static File[] listRoots()
Alle Stammverzeichnisse im System abrufen

File[] listFiles()
Ruft die Datei- und Ordnernamen im Pfad ab, der in der Dateikonstruktionsmethode gekapselt ist (ein Verzeichnis durchqueren)
Gibt den vollständigen Pfad des Verzeichnisses oder der Datei zurück

String[] list( : Die Methode nennt sich selbst

Kategorie:

Rekursion ist in zwei Typen unterteilt: direkte Rekursion und indirekte Rekursion. Direkte Rekursion wird als Methode selbst bezeichnet, die sich selbst aufruft. Durch die indirekte Rekursion kann Methode A Methode B aufrufen, Methode B Methode C aufrufen und Methode C Methode A aufrufen.

Hinweis: 1. Die Rekursion muss bedingt begrenzt werden, um sicherzustellen, dass die Rekursion gestoppt werden kann, andernfalls kommt es zu einem Stapelspeicherüberlauf.
2. Obwohl es Einschränkungen bei der Rekursion gibt, darf die Anzahl der Rekursionen nicht zu hoch sein. Andernfalls kommt es auch zu einem Stapelspeicherüberlauf.
3. Konstruktormethode, Rekursion ist verboten

文件过滤器
文件的过滤器:
需求:遍历hello文件夹,只获取文件夹中的.java结尾的文件
c:\\hello
c:\\hello\\demo.txt
c:\\hello\\Hello.java

在File类中listFiles()方法是遍历文件夹的方法
有两个和 listFiles重载的方法,参数传递的就是过滤器
File[] listFiles(FileFilter filter)
File[] listFiles(FilenameFilter filter)
返回抽象路径名数组,这些路径名表示此抽象路径名表示的目录中满足指定过滤器的文件和目录。  
发现方法的参数FileFilter和FilenameFilter是接口
所有我们需要自己定义接口的实现类,重写接口中的方法accept,实现过滤功能

 1 public class FileFilterImpl implements FileFilter{ 2     /* 3      * 实现过滤的方法: 4         1.把传递过来的路径pathname,变成字符串 5             Stirng s  = pathname.toString(); "c:\\hello\\demo.txt" 6             String s  = pathname.getPaht(); "c:\\hello\\demo.txt" 7             String s = pathname.getName(); "demo.txt" 8         2.使用String类中的方法endsWith判断字符串是否以指定的字符串结尾 9             boolean b = s.endsWith(".java");10             return b;11      */12     @Override13     public boolean accept(File pathname) {14         /*String s = pathname.getName();15         boolean b = s.endsWith(".java");16         return b;*/17         return pathname.getName().toLowerCase().endsWith(".java");18     }19 }20 public class FilenameFilterImpl implements FilenameFilter{21 22     @Override23     public boolean accept(File dir, String name) {24         return name.toUpperCase().endsWith(".JAVA");25     }26 27 }
Nach dem Login kopieren

断点调试
 debug断点调试
 f6:逐行执行
 f5:进入到方法中
 f7:结束方法
 f8:跳到下一个断点
 watch:捕获

Das obige ist der detaillierte Inhalt vonDateiübersicht und Einführung in die Verwendung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Rekursive Implementierung von C++-Funktionen: Gibt es eine Grenze für die Rekursionstiefe? Rekursive Implementierung von C++-Funktionen: Gibt es eine Grenze für die Rekursionstiefe? Apr 23, 2024 am 09:30 AM

Die Rekursionstiefe von C++-Funktionen ist begrenzt und das Überschreiten dieser Grenze führt zu einem Stapelüberlauffehler. Der Grenzwert variiert je nach System und Compiler, liegt aber meist zwischen 1.000 und 10.000. Zu den Lösungen gehören: 1. Tail-Rekursionsoptimierung; 2. Tail-Call;

Hongmeng native Anwendung zufälliger Poesie Hongmeng native Anwendung zufälliger Poesie Feb 19, 2024 pm 01:36 PM

Um mehr über Open Source zu erfahren, besuchen Sie bitte: 51CTO Hongmeng Developer Community https://ost.51cto.com Laufumgebung DAYU200:4.0.10.16SDK: 4.0.10.15IDE: 4.0.600 1. Um eine Anwendung zu erstellen, klicken Sie auf Datei- >newFile->CreateProgect. Vorlage auswählen: [OpenHarmony] EmptyAbility: Geben Sie den Projektnamen, shici, den Namen des Anwendungspakets com.nut.shici und den Speicherort der Anwendung XXX ein (kein Chinesisch, Sonderzeichen oder Leerzeichen). CompileSDK10, Modell: Stage. Gerät

Unterstützen C++-Lambda-Ausdrücke die Rekursion? Unterstützen C++-Lambda-Ausdrücke die Rekursion? Apr 17, 2024 pm 09:06 PM

Ja, C++-Lambda-Ausdrücke können die Rekursion mithilfe von std::function unterstützen: Verwenden Sie std::function, um einen Verweis auf einen Lambda-Ausdruck zu erfassen. Mit einer erfassten Referenz kann sich ein Lambda-Ausdruck rekursiv selbst aufrufen.

Zählen Sie rekursiv die Anzahl der Vorkommen eines Teilstrings in Java Zählen Sie rekursiv die Anzahl der Vorkommen eines Teilstrings in Java Sep 17, 2023 pm 07:49 PM

Gegeben seien zwei Strings str_1 und str_2. Das Ziel besteht darin, mithilfe eines rekursiven Verfahrens die Anzahl der Vorkommen der Teilzeichenfolge str2 in der Zeichenfolge str1 zu zählen. Eine rekursive Funktion ist eine Funktion, die sich innerhalb ihrer Definition selbst aufruft. Wenn str1 „Iknowthatyouknowthatiknow“ und str2 „know“ ist, beträgt die Anzahl der Vorkommen -3. Lassen Sie uns das anhand von Beispielen verstehen. Geben Sie beispielsweise str1="TPisTPareTPamTP", str2="TP" ein; geben Sie Countofoccurrencesofasubstringrecursi aus

Rekursive Implementierung von C++-Funktionen: Vergleichende Analyse rekursiver und nichtrekursiver Algorithmen? Rekursive Implementierung von C++-Funktionen: Vergleichende Analyse rekursiver und nichtrekursiver Algorithmen? Apr 22, 2024 pm 03:18 PM

Der rekursive Algorithmus löst strukturierte Probleme durch den Selbstaufruf von Funktionen. Der Vorteil besteht darin, dass er einfach und leicht zu verstehen ist. Der Nachteil besteht jedoch darin, dass er weniger effizient ist und einen Stapelüberlauf verursachen kann Der Vorteil der Stapeldatenstruktur besteht darin, dass sie effizienter ist und einen Stapelüberlauf vermeidet. Der Nachteil besteht darin, dass der Code möglicherweise komplexer ist. Die Wahl zwischen rekursiv und nicht rekursiv hängt vom Problem und den spezifischen Einschränkungen der Implementierung ab.

Rekursives Programm zum Ermitteln minimaler und maximaler Elemente eines Arrays in C++ Rekursives Programm zum Ermitteln minimaler und maximaler Elemente eines Arrays in C++ Aug 31, 2023 pm 07:37 PM

Als Eingabe nehmen wir das Integer-Array Arr[]. Ziel ist es, mithilfe einer rekursiven Methode die größten und kleinsten Elemente in einem Array zu finden. Da wir Rekursion verwenden, durchlaufen wir das gesamte Array, bis wir Länge = 1 erreichen, und geben dann A[0] zurück, was den Basisfall bildet. Andernfalls wird das aktuelle Element mit dem aktuellen Minimal- oder Maximalwert verglichen und sein Wert für nachfolgende Elemente rekursiv aktualisiert. Schauen wir uns verschiedene Eingabe- und Ausgabeszenarien dafür an −Input −Arr={12,67,99,76,32};Output −Maximum value in the array: 99 Explanation &mi

So verwenden Sie die Vue-Formularverarbeitung, um eine rekursive Verschachtelung von Formularen zu implementieren So verwenden Sie die Vue-Formularverarbeitung, um eine rekursive Verschachtelung von Formularen zu implementieren Aug 11, 2023 pm 04:57 PM

So verwenden Sie die Vue-Formularverarbeitung, um eine rekursive Verschachtelung von Formularen zu implementieren. Einführung: Da die Komplexität der Front-End-Datenverarbeitung und Formularverarbeitung weiter zunimmt, benötigen wir eine flexible Möglichkeit, komplexe Formulare zu verarbeiten. Als beliebtes JavaScript-Framework bietet uns Vue viele leistungsstarke Tools und Funktionen für die rekursive Verschachtelung von Formularen. In diesem Artikel wird erläutert, wie Sie mit Vue solche komplexen Formulare verarbeiten und Codebeispiele anhängen. 1. Rekursive Verschachtelung von Formularen In einigen Szenarien müssen wir uns möglicherweise mit rekursiver Verschachtelung befassen.

Detaillierte Erläuterung der C++-Funktionsrekursion: Anwendung der Rekursion bei der Zeichenfolgenverarbeitung Detaillierte Erläuterung der C++-Funktionsrekursion: Anwendung der Rekursion bei der Zeichenfolgenverarbeitung Apr 30, 2024 am 10:30 AM

Eine rekursive Funktion ist eine Technik, die sich selbst wiederholt aufruft, um ein Problem bei der Zeichenfolgenverarbeitung zu lösen. Es erfordert eine Beendigungsbedingung, um eine unendliche Rekursion zu verhindern. Rekursion wird häufig bei Operationen wie der String-Umkehr und der Palindromprüfung verwendet.

See all articles