Lorsque vous déterminez si un objet fichier est un fichier ou un répertoire, vous devez d'abord déterminer si le contenu encapsulé par l'objet fichier existe, et juger par son existence ; la méthode de codage peut également être spécifiée lors de la construction du flux d'opérations de fichier texte ;
Fichier f ;
f.exists();
f.isDirectory();
f.isFile();
f.deleteOnExit();//Supprime le fichier spécifié à la fin du programme ;
f.createNewFile();//Créer un fichier à l'emplacement spécifié Si le fichier existe déjà, renvoie false ;
f.getParent();//Cette méthode renvoie le répertoire parent dans le chemin absolu. Si le chemin relatif est obtenu, Null est renvoyé S'il y a un répertoire de niveau supérieur dans le chemin relatif, le répertoire est renvoyé ;
File.separator //Séparateur du système de fichiers, différents systèmes ont des séparateurs différents ;
FilenameFilter:// est utilisé pour filtrer les noms de fichiers ;
FilenameFilter.accept(File dir,String name); //Test si le fichier spécifié est inclus dans une liste de fichiers ;
nom : le nom du fichier ;
public boolean accept(Répertoire du fichier, nom de la chaîne) { return name.endsWith(".txt" }
//Le tampon semble améliorer l'efficacité des opérations de flux ; avant de créer un tampon, il doit y avoir un objet flux ;
//La technologie de mise en mémoire tampon ferme en fait le tableau à l'intérieur de l'objet et l'écrit une fois après l'enregistrement ;
Constructeur : le constructeur qui transmet le flux dans le tampon ;
Remarque : Tant que le tampon est utilisé, le tampon doit être actualisé ;
Tamponné... buf;
buf.flush();
buf.close();//Fermer le tampon consiste à fermer l'objet flux dans le tampon ;
BufferedReader bufr;
bufr.readLine();//Renvoie une ligne, mais ne contient pas de caractère de nouvelle ligne ;
// Qu'il s'agisse de lire une ligne ou plusieurs caractères, en fait, ils sont lus un par un sur le disque dur, la méthode finale utilisée est donc de lire un à la fois en utilisant la méthode read.
/*
* ByteArrayInputStream : pendant la construction, la source de données doit être reçue et la source de données est un tableau d'octets ;
* ByteArrayOutputStream : lors de la construction, il n'est pas nécessaire de définir la destination des données, car un tableau d'octets de longueur variable est défini en interne, qui est la destination des données ;
* Les deux objets flux fonctionnent sur des tableaux, n'utilisent pas de ressources système et n'ont pas besoin d'être fermés ;
*/
//Les données dans le tampon interne seront actualisées avant de fermer la ressource de flux ;
// flush(); Après actualisation (stockage des données dans le tampon du fichier), le flux continue d'être utilisé ;
// Sérialisation : les membres statiques ne peuvent pas être sérialisés ;
// Si vous ne souhaitez pas que les membres non statiques soient sérialisés, ajoutez le modificateur : transient int,,,
System.in : InputStream
System.out : OutputStream