国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

Table des matières
?I/O流原理及流的分類
I/O原理
I/O流的分類
文件(File)
概念
??常用操作(File類)
Maison Java javaDidacticiel Notions de base de Java?: flux d'E/S et méthodes de fonctionnement des fichiers de classe File

Notions de base de Java?: flux d'E/S et méthodes de fonctionnement des fichiers de classe File

May 12, 2023 pm 04:37 PM
java file i/o

    ?I/O流原理及流的分類

    I/O原理

    • I/O是Input和Output的縮寫,I/O技術(shù)是非常實(shí)用的技術(shù),用于處理數(shù)據(jù)傳輸(如:讀/寫文件,網(wǎng)絡(luò)通信)

    • Java程序中,對于數(shù)據(jù)的輸入/輸出操作是以流(stream)的方式進(jìn)行的

    • java.io包下提供了各種流(stream)類和接口,用以獲取不同種類的數(shù)據(jù),并通過方法輸入和輸出數(shù)據(jù)。

    • 文件流:文件在程序中是以流的形式操作的

    Notions de base de Java?: flux dE/S et méthodes de fonctionnement des fichiers de classe File

    輸入流:數(shù)據(jù)從數(shù)據(jù)源(文件)到程序(內(nèi)存)的路徑

    輸出流:數(shù)據(jù)從程序(內(nèi)存)到數(shù)據(jù)源(文件)的路徑

    I/O流的分類

    • 按操作數(shù)據(jù)單位分為:字節(jié)流(二進(jìn)制文件)、字符流(文本文件)

    • 按數(shù)據(jù)的流向分為:輸入流、輸出流

    • 按流的角色分為:節(jié)點(diǎn)流、處理流

    抽象基類 字節(jié)流 字符流
    輸入流 InputStream Reader
    輸出流 OutputStream Writer

    ??I/O的體系結(jié)構(gòu)

    Notions de base de Java?: flux dE/S et méthodes de fonctionnement des fichiers de classe File

    文件(File)

    概念

    什么是文件?

    文件,對于我們并陌生,文件就是保存數(shù)據(jù)的地方,比如word文檔、txt文本、excel文件、圖片、視頻…等都是文件,操作系統(tǒng)中以文件為單位管理磁盤中的數(shù)據(jù)。從數(shù)據(jù)存儲(chǔ)角度來說,所有文件本質(zhì)上都是一樣的,都是由一個(gè)個(gè)字節(jié)組成的歸根到底都是0-1比特串。

    文件夾(目錄)

    多個(gè)文件如果不分類放在一起,用戶使用起來就非常不方便,因此,又引入了樹形目錄(也叫文件夾)的機(jī)制,可以把文件放在不同的文件夾中,文件夾中還可以嵌套文件夾,這就便于用戶對文件進(jìn)行管理和使用。

    ??常用操作(File類)

    創(chuàng)建文件對象相關(guān)構(gòu)造器和方法

    new File(String pathname);//根據(jù)路徑構(gòu)建一個(gè)File對象
    new File(File parent,String child);//根據(jù)父目錄文件+子路徑構(gòu)建
    new File(String parent,String child);//根據(jù)父目錄路徑+子路徑構(gòu)建
    createNewFile();//創(chuàng)建新文件

    在E盤下,用以上方式創(chuàng)建文件test01.txt\test02.txt\test03.txt

    import java.io.File;
    import java.io.IOException;
    
    public class FileCreate {
        public static void main(String[] args) throws IOException {
            //方式1
            String pathname = "e:\\test01.txt";
            File file1 = new File(pathname);
            file1.createNewFile();
            //方式2
            File parentfile = new File("e:\\");
            String child2 = "test02.txt";
            File file2 = new File(parentfile, child2);
            file2.createNewFile();
            //方式3
            String parent = "e:\\";
            String child3 = "test03.txt";
            File file3 = new File(parent, child3);
            file3.createNewFile();
        }
    }

    Notions de base de Java?: flux dE/S et méthodes de fonctionnement des fichiers de classe File

    獲取文件的相關(guān)信息

    get.getName();//獲取文件名字

    canRead();//文件是否可讀

    canWrite();//文件是否可寫

    getAbsoultePath();//獲取文件的絕對路徑

    getPath();//相對路徑

    getParent();//獲取文件父級目錄

    lenth();//文件大?。ㄗ止?jié))

    exists();//判斷文件是否存在

    isFile();//判斷是不是一個(gè)文件

    isDirectory();//判斷是不是一個(gè)目錄

    import java.io.File;
    public class FileInfomation {
        public static void main(String[] args) {
            //創(chuàng)建文件對象
            File file = new File("e:\\test01.txt");
            System.out.println("文件名字:" + file.getName());
            System.out.println("文件是否可讀:" + file.canRead());
            System.out.println("文件是否可寫:" + file.canWrite());
            System.out.println("文件絕對路徑:" + file.getAbsolutePath());
            System.out.println("文件大小(字節(jié)):" + file.length());
            System.out.println("文件是否存在:" + file.exists());
            System.out.println("是不是一個(gè)文件:" + file.isFile());
            System.out.println("是不是一個(gè)目錄:" + file.isDirectory());
        }
    }

    Notions de base de Java?: flux dE/S et méthodes de fonctionnement des fichiers de classe File

    文件比較

    File f1=new File("D:\\test1.txt");
    File f2=new File("D:\\test2.txt");
    f1==f2;//比較的是兩個(gè)對象的地址
    f1.equals(f2);//比較兩個(gè)對象對應(yīng)的文件的路徑

    目錄操作和文件刪除

    mkdir();//創(chuàng)建單層目錄

    mkdirs();//創(chuàng)建多層目錄

    delete();//刪除目錄(這層目錄必須為空,沒有內(nèi)容)

    查看文件目錄

    list();//返回一個(gè)字符串?dāng)?shù)組,命名由此抽象路徑名表示的目錄中的文件和目錄。

    listFiles();//返回一個(gè)抽象路徑名數(shù)組,表示由該抽象路徑名表示的目錄中的文件。

    案列:遍歷一個(gè)目錄下的所有文件打印輸出

    public class PrintFile {
        public static void main(String[] args) {
            //創(chuàng)建文件對象
            File file = new File("e:\\Test");
            String[] list = file.list();//文件夾下目錄/文件對應(yīng)的名字的數(shù)組
            for (String s : list) {
                System.out.println(s);
            }
            File[] files = file.listFiles();
            for (File f : files) {
                System.out.println(f.getName() + "," + f.getAbsolutePath());
            }
        }
    }

    Notions de base de Java?: flux dE/S et méthodes de fonctionnement des fichiers de classe File

    遍歷目錄

    1.給定一個(gè)文件對象file
    2.listFiles()獲取該文件下的所有文件對象數(shù)組
    3.遍歷File對象數(shù)組,如果是目錄,遞歸調(diào)用該方法獲取該目錄下的所有文件對象;如果是文件,打印輸出路徑+姓名

    import java.io.File;
    
    public class PrintFile {
        public static void main(String[] args) {
            File file = new File("E:\\Code");
            getAllFile(file);
        }
    
        public static void getAllFile(File file) {
            //獲取給定目錄下的所有File對象數(shù)組
            File[] files = file.listFiles();
            //開始遍歷
            if (files != null) {
                for (File f : files) {
                    if (f.isDirectory()) {//判斷是否為目錄,如果是,調(diào)用遞歸
                        getAllFile(f);
                    } else {//不是,就打印路徑+文件名
                        System.out.println(f.getAbsoluteFile() + "下的:" + f.getName());
                    }
                }
            }
        }
    }

    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 de ce site Web
    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

    Outils d'IA chauds

    Undress AI Tool

    Undress AI Tool

    Images de déshabillage gratuites

    Undresser.AI Undress

    Undresser.AI Undress

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

    AI Clothes Remover

    AI Clothes Remover

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

    Clothoff.io

    Clothoff.io

    Dissolvant de vêtements AI

    Video Face Swap

    Video Face Swap

    échangez les visages dans n'importe quelle vidéo sans effort grace à notre outil d'échange de visage AI entièrement gratuit?!

    Article chaud

    Outils chauds

    Bloc-notes++7.3.1

    Bloc-notes++7.3.1

    éditeur de code facile à utiliser et gratuit

    SublimeText3 version chinoise

    SublimeText3 version chinoise

    Version chinoise, très simple à utiliser

    Envoyer Studio 13.0.1

    Envoyer Studio 13.0.1

    Puissant environnement de développement intégré PHP

    Dreamweaver CS6

    Dreamweaver CS6

    Outils de développement Web visuel

    SublimeText3 version Mac

    SublimeText3 version Mac

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

    Sujets chauds

    Tutoriel PHP
    1502
    276
    Comment gérer les transactions en Java avec JDBC? Comment gérer les transactions en Java avec JDBC? Aug 02, 2025 pm 12:29 PM

    Pour gérer correctement les transactions JDBC, vous devez d'abord désactiver le mode de validation automatique, puis effectuer plusieurs opérations, et enfin vous engager ou randonner en fonction des résultats; 1. Appelez Conn.SetAutoCommit (false) pour démarrer la transaction; 2. Exécuter plusieurs opérations SQL, telles que l'insertion et la mise à jour; 3. Appelez Conn.Commit () Si toutes les opérations sont réussies, et appelez Conn.Rollback () Si une exception se produit pour garantir la cohérence des données; Dans le même temps, les ressources TRY-With doivent être utilisées pour gérer les ressources, gérer correctement les exceptions et cl?turer les connexions pour éviter la fuite de connexion; De plus, il est recommandé d'utiliser des pools de connexion et de définir des points de sauvegarde pour réaliser un retour en arrière partiel, et de maintenir les transactions aussi courtes que possible pour améliorer les performances.

    Comment travailler avec le calendrier à Java? Comment travailler avec le calendrier à Java? Aug 02, 2025 am 02:38 AM

    Utilisez des classes dans le package Java.Time pour remplacer les anciennes classes de date et de calendrier; 2. Obtenez la date et l'heure actuelles via LocalDate, LocalDateTime et Localtime; 3. Créez une date et une heure spécifiques en utilisant la méthode OF (); 4. Utilisez la méthode plus / moins pour augmenter et diminuer le temps; 5. Utilisez ZonedDateTime et ZoneID pour traiter le fuseau horaire; 6. Format et cha?nes de date d'analyse via DateTimeFormatter; 7. Utilisez instantanément pour être compatible avec les anciens types de dates si nécessaire; Le traitement des dattes dans le Java moderne devrait donner la priorité à l'utilisation de Java.timeapi, qui fournit clairement, immuable et linéaire

    Comparaison des frameworks Java: Spring Boot vs Quarkus vs MicronAut Comparaison des frameworks Java: Spring Boot vs Quarkus vs MicronAut Aug 04, 2025 pm 12:48 PM

    Pré-formancetartuptimemoryusage, quarkusandmicronautleadduetocompile-timeprocessingandgraalvsupport, withquarkusofperforming lightbetterine scénarios.

    Passez l'exemple de l'exemple de journalisation du middleware http Passez l'exemple de l'exemple de journalisation du middleware http Aug 03, 2025 am 11:35 AM

    HTTP Log Middleware dans GO peut enregistrer les méthodes de demande, les chemins de requête, la propriété intellectuelle du client et le temps qui prend du temps. 1. Utilisez http.handlerfunc pour envelopper le processeur, 2. Enregistrez l'heure de début et l'heure de fin avant et après l'appel Suivant.Servehttp, 3. Obtenez le vrai client IP via R.RemoteAddr et X-Forwared-For Headers, 4. Utilisez le log.printf aux journaux de demande de sortie, 5. L'exemple de code complet a été vérifié pour s'exécuter et convient au démarrage d'un projet petit et moyen. Les suggestions d'extension incluent la capture des codes d'état, la prise en charge des journaux JSON et le suivi des ID de demande.

    Comment fonctionne la collection Garbage en Java? Comment fonctionne la collection Garbage en Java? Aug 02, 2025 pm 01:55 PM

    La collecte des ordures de Java (GC) est un mécanisme qui gère automatiquement la mémoire, ce qui réduit le risque de fuite de mémoire en récupérant des objets inaccessibles. 1. GC juge l'accessibilité de l'objet de l'objet racine (tel que les variables de pile, les threads actifs, les champs statiques, etc.), et les objets inaccessibles sont marqués comme des ordures. 2. Sur la base de l'algorithme de compensation de marque, marquez tous les objets accessibles et effacez des objets non marqués. 3. Adopter une stratégie de collecte générationnelle: la nouvelle génération (Eden, S0, S1) exécute fréquemment MinorGC; Les personnes agées fonctionnent moins, mais prend plus de temps pour effectuer MajorGC; Metaspace Stores Metadata de classe. 4. JVM fournit une variété de périphériques GC: SerialGC convient aux petites applications; Le parallelGC améliore le débit; CMS réduit

    Utilisation de types HTML ?Entrée? pour les données utilisateur Utilisation de types HTML ?Entrée? pour les données utilisateur Aug 03, 2025 am 11:07 AM

    Le choix du bon type HTMLinput peut améliorer la précision des données, améliorer l'expérience utilisateur et améliorer la convivialité. 1. Sélectionnez les types d'entrée correspondants en fonction du type de données, tels que le texte, le courrier électronique, le tel, le numéro et la date, qui peuvent vérifier automatiquement la somme de la somme et l'adaptation au clavier; 2. Utilisez HTML5 pour ajouter de nouveaux types tels que l'URL, la couleur, la plage et la recherche, qui peuvent fournir une méthode d'interaction plus intuitive; 3. Utilisez l'espace réservé et les attributs requis pour améliorer l'efficacité et la précision du remplissage des formulaires, mais il convient de noter que l'espace réservé ne peut pas remplacer l'étiquette.

    Comparaison des outils de construction Java: Maven vs Gradle Comparaison des outils de construction Java: Maven vs Gradle Aug 03, 2025 pm 01:36 PM

    GradleisthebetterChoiceFormostNewProjectsDuetOtsSuperiorflexibility, Performance et ModerNtoolingSupport.1.gradle’sgroovy / kotlindslismoreConcis

    passer par l'exemple de déclaration de différence expliquée passer par l'exemple de déclaration de différence expliquée Aug 02, 2025 am 06:26 AM

    Le report est utilisé pour effectuer des opérations spécifiées avant le retour de la fonction, telles que les ressources de nettoyage; Les paramètres sont évalués immédiatement lorsqu'ils sont reportés et les fonctions sont exécutées dans l'ordre de la dernière entrée (LIFO); 1. Plusieurs éleveurs sont exécutés dans l'ordre inverse des déclarations; 2. Communément utilisé pour le nettoyage sécurisé tel que la fermeture des fichiers; 3. La valeur de retour nommée peut être modifiée; 4. Il sera exécuté même si la panique se produit, adaptée à la récupération; 5. éviter l'abus de report dans les boucles pour éviter la fuite des ressources; Une utilisation correcte peut améliorer la sécurité et la lisibilité du code.

    See all articles