Maison  >  Article  >  Java  >  Présentation du fichier et introduction à l'utilisation

Présentation du fichier et introduction à l'utilisation

PHP中文网
PHP中文网original
2017-06-21 09:34:191142parcourir

Présentation des fichiers
Classe java.io.File : représentation abstraite des noms de chemin de fichier et de répertoire.
Utilisé pour décrire les fichiers, les dossiers et les classes de chemin dans l'ordinateur

Trois mots couramment utilisés liés au fichier :
fichier : fichier
répertoire : fichier Dossier ( répertoire)
chemin : chemin
File est une classe qui n'a rien à voir avec le système

Trois méthodes de construction surchargées de la classe File
Chemin :
Séparation de répertoire de la fenêtre system Le symbole est un
. Le séparateur de répertoire en java est : \ ou /
Classification des chemins :
Chemin absolu : Chemin commençant par une lettre de lecteur
Par exemple : D:\ase\20170514\day10
D:\Work_EE_266\day10\src
Chemin relatif : Par rapport au projet en cours, vous pouvez omettre la lettre de lecteur lorsque écrire le chemin d'accès au chemin entre les projets
D:\Work_EE_266\day10-->src

Remarque : Lu Jin ne respecte pas la casse
Fichier (parent du fichier, enfant de chaîne)
passant path , pass Chemin parent de type fichier, chemin enfant de type chaîne
Avantages : Le chemin parent est de type fichier, le chemin parent peut appeler directement la méthode de la classe File
Fichier (parent String, enfant String)
Pass path, pass Chemin parent du type chaîne, sous-chemin du type chaîne
Avantages : Il est plus flexible d'exploiter le chemin parent et le sous-chemin séparément, et le chemin peut être passé en paramètre séparément
Fichier ( String pathname)
Passer le nom du chemin : Vous pouvez écrire dans un dossier ou un fichier
c:\abc c:\abc\Demo.java
Vous pouvez le créer que le chemin existe ou non. n'est pas sensible à la casse

 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     }

Fonction de création et de suppression de classe de fichiers
Fonction de suppression de classe de fichiers
boolean delete()
Supprimer des fichiers ou des dossiers, dans le constructeur File Donné dans
Renvoie vrai si la suppression est réussie, faux si la suppression échoue (n'existe pas, il y a du contenu dans le dossier)
La méthode de suppression ne va pas dans la corbeille, supprimer directement du disque dur
La suppression est risquée, veuillez opérer avec prudence


Fonction de dossier de création de fichiers
boolean mkdir() ne peut créer que des dossiers à une seule couche
boolean mkdirs() peut créer à la fois des dossiers monocouches et créer un dossier multicouche
Le chemin créé est également donné dans la méthode de construction de fichier
Si le dossier existe déjà, il ne sera pas créé


Fonction de fichier pour créer un fichier
boolean createNewFile()
Le chemin et le nom du fichier créé sont donnés dans la méthode de construction de fichier
Si le fichier existe déjà, il ne sera pas créé et renvoie false
Seuls les fichiers peuvent être créés, pas les dossiers ( Regardez le type, ne regardez pas le suffixe)
Le chemin pour créer le dossier doit exister

La fonction de jugement de la classe File
boolean isDirectory()
Jugez la méthode de construction du fichier Si le chemin encapsulé est un dossier
S'il s'agit d'un dossier, retournez vrai, si pas un dossier, return false
boolean isFile()
Détermine si le chemin encapsulé dans la méthode de construction File est un fichier
boolean exist()
Détermine si le chemin encapsulé dans la méthode de construction File existe
Renvoie vrai s'il existe, faux s'il n'existe pas

Obtention de la fonction de la classe File
String getParent() Renvoie l'objet String
File getParentFile() Renvoie l'objet File
Récupère le chemin parent, et renvoie le chemin parent à la fin du fichier

long length()
Renvoie le nombre d'octets du fichier représenté dans le chemin, dossier Aucune taille

String getPath() Convertit ce chemin abstrait en chaîne de chemin.
Identique à toString

String getName()
Renvoie le nom du fichier ou du dossier représenté dans le chemin
Récupère le nom de la dernière partie du chemin

Fichier getAbsoluteFile () renvoie la forme de chemin absolu de ce chemin abstrait.
String getAbsolutePath() Renvoie la chaîne de chemin absolu de ce chemin abstrait.
Obtenez le chemin absolu


Méthodes de parcours des répertoires list et listFiles
Notes :
1. Le chemin parcouru ne peut être qu'un seul répertoire
2. Le répertoire parcouru doit exister
sinon une exception de pointeur nul sera levée

static File[] listRoots()
Obtenez tous les répertoires racine du système

File[] listFiles()
Récupère les noms de fichiers et de dossiers dans le chemin encapsulé dans la méthode de construction File (parcourir un répertoire)
Renvoie le chemin complet du répertoire ou du fichier

String[] list( : La méthode s'appelle

Catégorie :

La récursion est divisée en deux types, la récursivité directe et la récursivité indirecte. La récursivité directe est appelée la méthode elle-même qui s'appelle elle-même. La récursivité indirecte permet à la méthode A d'appeler la méthode B, à la méthode B d'appeler la méthode C et à la méthode C d'appeler la méthode A.

Remarque : 1. La récursivité doit être limitée de manière conditionnelle pour garantir que la récursivité peut être arrêtée, sinon un débordement de mémoire de la pile se produira.
2. Bien qu'il existe des restrictions en matière de récursivité, le nombre de récursions ne peut pas être trop élevé. Sinon, un débordement de mémoire de pile se produira également.
3. Méthode constructeur, la récursivité est interdite

文件过滤器
文件的过滤器:
需求:遍历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 }

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

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn