


Méthodes courantes de classe de fichiers Java et exemple d'analyse de filtre de fichiers
File类
File类用于封装一个路径,这个路径可以是从系统盘符开始的绝对路径,也可以是相对于当前目录的相对路径,File类内部封装的路径可以指向一个文件,也可以指向一个目录,在File类中提供了针对这些目录或文件的一些常规操作。
File类常用的构造方法
File(String pathname)//通过指定的一个字符串类型的文件路径来创建一个新的File对象
File(String parent,String child)//根据指定的一个字符串类型的父路径和一个字符串类型的子路径创建一个File对象
File(File parent,String child)//根据指定的File类的父路径和字符串类型的子路径创建一个File对象
查看文件的相应信息
package JS; import java.io.File; public class XX { public static void main(String[] args) { File file=new File("example.txt"); //获取文件名称 System.out.println("文件名称:"+file.getName()); //获取文件的相对路径 System.out.println("文件的相对路径:"+file.getPath()); //获取文件的绝对路径 System.out.println("文件的绝对路径:"+file.getAbsolutePath()); //获取文件的父路径 System.out.println("文件的父路径:"+file.getParent()); //判断文件是否可读 System.out.println(file.canRead() ?"文件可读":"文件不可读"); //判断文件是否可写 System.out.println(file.canWrite() ?"文件可写":"文件不可写"); //判断是否是同一个文件 System.out.println(file.isFile() ?"是一个文件":"不是一个文件"); //判断是否是同一个目录 System.out.println(file.isDirectory() ?"文件是一个目录":"文件不是一个目录"); //得到文件最后的修改时间 System.out.println("最后修改时间为:"+file.lastModified()); //得到文件的大小 System.out.println("文件的大小为:"+file.length()+"bytes"); //是否成功删除文件 System.out.println("是否成功删除文件"+file.delete()); } }
遍历目录下的文件
通过list()方法可以遍历某个指定目录下的所有文件名称
package JhiShi; import java.io.File; public class Example01 { public static void main(String[] args) throws Exception{ File file=new File("C:\\Users\\lenovo\\IdeaProjects\\java se"); if(file.isDirectory()){ String[] names=file.list(); for (String name:names){ System.out.println(name); } } } }
先通过File类里面的isDirectory()方法判断路径指向的是否为存在的目录,存在就调用list()方法,并且获得String类型的数组names,数组中包含这个目录下的所有文件的文件名,然后循环遍历数组的names,依次打印出每个文件的名字。
文件过滤器
package JhiShi; import java.io.File; import java.io.FilenameFilter; public class Example02 { public static void main(String[] args) throws Exception{ File file=new File("C:\\Users\\lenovo\\IdeaProjects\\java se"); FilenameFilter filter=new FilenameFilter() { @Override public boolean accept(File dir, String name) { File currFile=new File(dir,name); if(currFile.isFile()&&name.endsWith(".txt")){ return true; }else{ return false; } } }; if(file.exists()){ String[] lists=file.list(filter); for (String name:lists){ System.out.println(name); } } }
对子目录进行遍历
package JhiShi; import java.io.File; public class Example03 { public static void main(String[] args) throws Exception{ File file=new File("C:\\Users\\lenovo\\IdeaProjects\\java se"); fileDir(file); } public static void fileDir(String[] args) { File[]files=dir.listFiles(); for (File file:files){ if(file.isDirectory()){ fileDir(file); } System.out.println(file.getAbsoluteFile()); } } }
通过一个静态方法fileDir(),用于接收一个表示目录的File对象,先调用listFile()方法把该目录下所有的子目录和文件存到一个File类型的数组files中,然后遍历数组files,并且对遍历对象进行判断,如果是目录就从新调用fileDir()方法进行递归,如果是文件则输出文件的路径。
删除文件及目录
package JhiShi; import java.io.File; public class Example03 { public static void main(String[] args) { File file=new File("C:\\ABC"); deleteDir(file); } public static void deleteDir(String[] args) { if(dir.exists){ File[]files=dir.listFiles(); for(File file:files){ if(files.isDirectory()){ deleteDir(file); }else{ file.delete(); } } dir.delete(); } } }
定义了一个删除目录的静态方法deleteDir()来接收一个File类型的参数,调用listFiles()方法把这个目录下所有的子目录和文件保存到一个File类型的数组files中,然后遍历files,如果是目录从新调用deleteDir()方法进行递归,如果是文件则直接调用File的delete()方法删除,当删除完这个目录下的所有文件时,再删除这个目录。
注意:Java删除目录是从虚拟机直接删除而不是回收站,一旦删除无法恢复
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!

Outils d'IA chauds

Undress AI Tool
Images de déshabillage gratuites

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds











Facultatif est une classe de conteneurs introduite par Java 8 pour une manipulation plus sécurisée de valeurs potentiellement nulles, dont le but central est de "manquer la valeur" explicitement et de réduire le risque de nullpointerexception. 1. Créez une instance vide en utilisant Facultational.Empty (), Facultatif.Of (Valeur) Enveloppe les valeurs non nulles, et facultative.OfNULLABLE (valeur) Enveloppe la valeur de Null. 2. Évitez de combiner ispresent () et get () directement. Vous devez donner la priorité à l'utilisation d'Orelse () pour fournir des valeurs par défaut. Orelseget () implémente le calcul des retards. Cette méthode est recommandée lorsque la valeur par défaut est sur la tête.

SQLServer lui-même ne prend pas en charge l'architecture sans serveur, mais la plate-forme cloud fournit une solution similaire. 1. Le pool de serveur Azure peut interroger directement les fichiers de données et les charges en fonction de la consommation de ressources; 2. AzureFunctions combinées avec COSMOSDB ou Blobstorage peut réaliser un traitement SQL léger; 3. Awsathena prend en charge les requêtes SQL standard pour les données S3 et les charges basées sur des données numérisées; 4. GooglebigQuery s'approche du concept sans serveur via FederatedQuery; 5. Si vous devez utiliser la fonction SQLServer, vous pouvez choisir sans serveur d'Azuresqldatabase sans service

Il est recommandé d'utiliser le mot-clé dans pour vérifier si une clé existe dans le dictionnaire, car elle est concise, efficace et très lisible; 2. Il n'est pas recommandé d'utiliser la méthode get () pour déterminer si la clé existe, car elle sera mal jugée lorsque la clé existe mais que la valeur n'est aucune; 3. Vous pouvez utiliser la méthode Keys (), mais elle est redondante, car par défaut pour vérifier la clé; 4. Lorsque vous devez obtenir une valeur et que la clé attendue existe généralement, vous pouvez utiliser Try-Except pour attraper l'exception de Keyerror. La méthode la plus recommandée consiste à utiliser le mot clé dans, qui est à la fois sûr et efficace, et n'est pas affecté par la valeur de aucun, ce qui convient à la plupart des scénarios.

Utilisez fmt.scanf pour lire l'entrée formatée, adaptée aux données structurées simples, mais la chaîne est coupée lors de la rencontre des espaces; 2. Il est recommandé d'utiliser Bufio.Scanner pour lire la ligne par ligne, prend en charge les entrées multi-lignes, la détection EOF et l'entrée du pipeline et peut gérer les erreurs de numérisation; 3. Utilisez io.readall (os.stdin) pour lire toutes les entrées à la fois, adapté au traitement de grandes données de bloc ou de flux de fichiers; 4. La réponse clé en temps réel nécessite des bibliothèques tierces telles que golang.org/x/term, et Bufio est suffisant pour les scénarios conventionnels; Suggestions pratiques: utilisez fmt.scan pour une entrée simple interactive, utilisez bufio.scanner pour une entrée de ligne ou un pipeline, utilisez io.readall pour les données de gros bloc et gérez toujours

Les appels système sont des mécanismes dans lesquels les programmes utilisateur demandent des opérations privilégiées via l'interface du noyau. Le workflow est: 1. Les programmes utilisateur appellent les fonctions d'encapsulation; 2. Définissez les numéros d'appel système et les paramètres sur les registres; 3. Exécuter les instructions syscall et tomber dans l'état du noyau; 4. Exécuter les fonctions de traitement correspondantes dans la table de contrôle; 5. Retour à l'état de l'utilisateur après l'exécution. Vous pouvez utiliser Strace Tool pour suivre, appeler directement la fonction SYSCall () ou vérifier le fichier d'en-tête unitd.h pour afficher le numéro d'appel. Vous devez noter que la différence entre les appels système et les fonctions de bibliothèque est de savoir s'ils entrent dans l'état du noyau, et les appels fréquents affecteront les performances. Vous devez optimiser en fusionnant les E / S, en utilisant des méthodes MMAP et EPOLL, et la compréhension des appels système vous aidera à maîtriser le mécanisme de fonctionnement sous-jacent de Linux.

Installjdk, setjava_home, installjavaextenppackinscode, createoropenamaven / gradleproject, assureproperprojectstructure, andUsebuilt-inrun / debugFeatures; 1.installjdkandverifywithjava-visionandjava

USECONNECTIONPOOLINGWithHikaricptoreUsedatabaseConnectionsectionsandreduceoverhead.2.USEPREPAREDSATAMENTSTOPREVENTSQLINIGDIGNANDIMPROVERSERYPERFORMANCE.3.FetchOnlyRequiredDatabySelectingSpecificColumnSet et ApplyingFilterSandPagination.4.UsebatchOperationStor

Le modèle d'intégration de maîtrise SpringCloud est crucial pour construire des systèmes distribués modernes. 1. Enregistrement et découverte des services: l'enregistrement et la découverte automatique des services sont réalisés via Eureka ou SpringCloudkubernetes, et l'équilibrage de la charge est effectué avec du ruban ou du chargeur de chargement; 2. 3. Passerelle API: Utilisez SpringCloudgateway pour unifier l'entrée, le contrôle de routage et la gestion des autorisations, et de prendre en charge la limitation et la journalisation actuelles; 4. Suivi des liens distribués: Combinez Sleuth et Zipkin pour réaliser le processus complet de demande visuelle de demande.
