Maison > Java > javaDidacticiel > le corps du texte

Introduction détaillée aux opérations sur les fichiers et au contenu du flux IO en Java

不言
Libérer: 2018-10-12 15:56:09
avant
2807 Les gens l'ont consulté

Cet article vous apporte une introduction détaillée aux opérations sur les fichiers et au contenu du flux IO en Java. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer.

Avant-propos

  1. À quoi sert un flux : Pour enregistrer des données de manière permanente.

  2. Les flux IO sont utilisés pour gérer la transmission de données entre appareils (téléchargement et téléchargement de fichiers)

  3. Java fonctionne sur les données via des flux.

  4. Les objets Java utilisés pour faire fonctionner les flux sont dans le package IO.

  5. L'apprentissage du système Java IO consiste essentiellement à lire et à écrire des fichiers.

Classe File

  1. File est utilisé en Java pour extraire un fichier. Qu'il s'agisse d'un fichier ordinaire ou d'un répertoire, il peut traiter. un objet Fichier.

  2. Le fichier n'est qu'une représentation abstraite d'un fichier ou d'un répertoire sur le disque. En interne, il repose en fait sur une classe de système de fichiers local indépendante de la plate-forme.

  3. Le fichier ne peut effectuer aucune opération de lecture ou d'écriture sur le contenu du fichier qu'il représente (c'est ce que font les flux).

  4. Méthodes membres :

    (1)创建功能:
        【1】public boolean createNewFile()
        【2】public boolean mkdir()
        【3】public boolean mkdirs()
    (2)删除功能:public boolean delete()
    (3)重命名功能:public boolean renameTo(File dest)
    (4)判断功能:
        【1】public boolean isDirectory()
        【2】public boolean isFile()
        【3】public boolean exists()
        【4】public boolean canRead()
        【5】public boolean canWrite()
        【6】public boolean isHidden()
    (5)获取功能:
        【1】public String getAbsolutePath()
        【2】public String getPath()
        【3】public String getName()
        【4】public long length()
        【5】public long lastModified()
    (6)高级获取功能:
        【1】public String[] list()
        【2】public File[] listFiles()
    Copier après la connexion

Classification des flux

  1. Selon les différents flux de données directions Divisé en flux d’entrée et flux de sortie.

  2. est divisé en flux d'octets et flux de caractères selon les différents types de données traitées :

(1) Flux de caractères : Comme son nom suggère que ce flux ne peut traiter que les caractères, mais il traite les caractères très rapidement.
(2) Flux d'octets : il peut traiter tous les fichiers stockés en unités de bits, ce qui signifie qu'il peut traiter tous les fichiers, mais il n'est pas aussi rapide que le flux de caractères dans le traitement des caractères.

  1. Classe de base abstraite du flux de caractères :

(1) Lecteur : classe abstraite du flux d'entrée de caractères, tous L'implémentation du flux d'entrée de caractères est sa sous-classe
(2) Writer : la classe abstraite du flux de sortie de caractères, l'implémentation de toutes les classes de sortie de caractères est sa sous-classe

  1. Classe de base abstraite du flux d'octets :

(1) InputStream : classe abstraite du flux d'entrée d'octets, la classe parent de tous les flux d'entrée d'octets<🎜 > (2) OutputStream : La classe abstraite du flux de sortie d'octets, qui est la super classe de toutes les classes qui génèrent des flux d'octets

  1. Une sous-classe dérivée du flux de caractères Reader :

    (1)CharArrayReader
    (2)BufferedReader/LineNumberReader
    (3)FilterReader
    (4)InputStreamReader/FileReader
    Copier après la connexion
  2. Sous-classe dérivée de Writer de flux de caractères :

    (1)BufferedWriter
    (2)CharArrayWriter
    (3)FilterWriter
    (4)OutputStreamWriter/FileWriter
    (5)PrintWriter
    (6)StringWriter
    Copier après la connexion
  3. octets Sous-classes dérivées de Stream InputStream :

    (1)FileInputStream
    (2)ObjectInputStream
    (3)FilterInputStream/BufferedInputStream/DataInputStream/PushbackInputStream
    (4)SequenceInputStream
    (5)ByteArrayInputStream
    (6)StringBufferInputStream)
    Copier après la connexion
  4. Flux d'octets Classes dérivées de OutputStream :

    (1)ByteArrayOutputStream
    (2)FileOutputStream
    (3)FilterOutputStream/BufferedOutputStream/DataOutputStream
    (4)ObjectOutputStream
    Copier après la connexion
  5. Optimiser la lecture et l'écriture : flux de tampon d'octets

    Le flux d'octets lit et écrit un tableau à la fois beaucoup plus rapidement que la lecture et l'écriture d'un octet à la fois. C'est l'effet tampon de l'ajout d'un tableau.
  1. Lors de la lecture du flux d'entrée d'octets du fichier, il est lu directement à partir du même flux d'octets.
  2. Le flux d'octets étant lu avec le matériel (support de stockage), il est plus lent.
  3. Lorsque le processeur a besoin d'utiliser des données, il sera limité par la vitesse lente des E/S matérielles lors de la lecture des données via read() et read(byte[]).
  4. La vitesse de lecture et d'écriture entre le processeur et la mémoire est plus de 10 fois plus rapide que les E/S matérielles, de sorte qu'une optimisation du tampon peut être établie dans la mémoire.
  5. Idées pour optimiser la lecture et l'écriture :
  6. (1) Créer un tampon en mémoire
(2) Mettre d'abord le support de stockage in Les octets sont lus dans le tampon

(3) Lorsque le CPU a besoin de données, elles sont lues directement à partir du tampon
(4) Le tampon doit être suffisamment grand, et après avoir été lu, la fonction fill() est déclenché pour lire automatiquement à partir du tampon. Les octets sont lus à partir du contenu des octets du fichier du média et stockés dans un tableau de tampons.

Flux de conversion

    Le flux de conversion est un pont entre le flux d'octets et le flux de caractères, qui peut convertir le flux d'octets en flux de caractères.
  1. Le principe est d'ajouter des opérations d'encodage et de décodage sur la base de flux d'octets.
  2. Flux de caractères = flux d'octets + table d'encodage
  3. FileReader et FileWriter sont en fait des flux d'octets en bas, mais ils nécessitent une configuration supplémentaire Encoder et le décodeur, la couche inférieure utilise des octets pour lire les données et les convertit en caractères via le décodeur, ou convertit les caractères en octets via l'encodeur puis les sort.

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!

Étiquettes associées:
source:cnblogs.com
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!