Maison >Problème commun >Quelle est la différence entre les fichiers texte et les fichiers binaires ?

Quelle est la différence entre les fichiers texte et les fichiers binaires ?

coldplay.xixi
coldplay.xixioriginal
2020-11-20 09:42:2924239parcourir

La différence entre les fichiers texte et les fichiers binaires : 1. Les fichiers texte sont des fichiers basés sur le codage de caractères. Les codages courants incluent le codage ASCII, le codage UNICODE, etc. ; 2. Les fichiers binaires sont des fichiers basés sur le codage de valeurs

Quelle est la différence entre les fichiers texte et les fichiers binaires ?

La différence entre les fichiers texte et les fichiers binaires :

1. La définition des fichiers texte et des fichiers binaires

Tout le monde sait que le stockage informatique est physiquement binaire, donc la différence entre les fichiers texte et les fichiers binaires n'est pas physique, mais logique. Les deux ne diffèrent qu’au niveau du codage.

Pour faire simple, les fichiers texte sont des fichiers basés sur le codage de caractères. Les codages courants incluent le codage ASCII, le codage UNICODE, etc. Les fichiers binaires sont des fichiers basés sur un codage de valeurs. Vous pouvez spécifier la signification d'une certaine valeur en fonction de l'application spécifique (un tel processus peut être considéré comme un codage personnalisé).

Comme le montre ce qui précède, les fichiers texte sont essentiellement codés en longueur fixe. En fonction des caractères, chaque caractère est fixé dans le codage spécifique. Il s'agit d'un codage sur 8 bits, et UNICODE en tient généralement compte. 16 bits. Les fichiers binaires peuvent être considérés comme un codage de longueur variable, car il s'agit d'un codage de valeur. Le nombre de bits représentant une valeur dépend entièrement de vous. Vous connaissez peut-être les fichiers BMP. Prenons-le comme exemple. Son en-tête est constitué d'informations d'en-tête de fichier de longueur relativement fixe. Les 2 premiers octets sont utilisés pour enregistrer que le fichier est au format BMP, et les 8 octets suivants sont utilisés pour. enregistrez la longueur du fichier et les 4 octets suivants sont utilisés pour enregistrer la longueur de l'en-tête du fichier bmp. . . Comme vous pouvez le voir, l'encodage est basé sur des valeurs (longueurs variables, y compris des valeurs de 2, 4 et 8 octets de long), donc BMP est un fichier binaire.

2. Accès aux fichiers texte et aux fichiers binaires

Quel est le processus d'ouverture d'un fichier avec un outil texte ? Prenons l'exemple du Bloc-notes. Il lit d'abord le flux binaire qui correspond physiquement au fichier (comme mentionné précédemment, le stockage est binaire), puis interprète ce flux en fonction de la méthode de décodage que vous choisissez, puis affiche les résultats de l'interprétation. De manière générale, la méthode de décodage que vous choisirez sera sous forme de code ASCII (un caractère du code ASCII fait 8 bits). Ensuite, elle interprète ce flux de fichier 8 bits 8 bits. Par exemple, pour un tel flux de fichiers "01000000_01000001_01000010_01000011" (souligné '_', que j'ai ajouté manuellement pour améliorer la lisibilité), si les 8 premiers bits '01000000' sont décodés selon le code ASCII, le caractère correspondant est 'A', de la même manière les trois autres 8 bits peuvent être décodés respectivement comme « BCD », c'est-à-dire que ce flux de fichiers peut être interprété comme « ABCD », puis le Bloc-notes affichera ce « ABCD » à l'écran.

En fait, si quelque chose au monde veut communiquer avec d'autres choses, il existe un protocole établi et un encodage établi. Les gens communiquent entre eux par des mots. Le caractère chinois « mère » représente la personne qui vous a donné naissance. Il s'agit d'un code établi. Mais j'ai remarqué que le caractère chinois « Maman » en caractères japonais peut désigner la personne à laquelle vous avez donné naissance. Par conséquent, lorsqu'un Chinois A et un Japonais B utilisent le mot « mère » pour communiquer, il est très facile de se tromper. se produire. L'ouverture de fichiers binaires avec le Bloc-notes est similaire à la situation ci-dessus. Quel que soit le fichier qu'il ouvre, le Bloc-notes fonctionne selon le codage de caractères établi (tel que le code ASCII), donc lorsqu'il ouvre un fichier binaire, il est inévitable que des caractères tronqués apparaissent. Le décodage et le décodage ne correspondent pas. Par exemple, le flux de fichier « 00000000_00000000_00000000_00000001 » peut correspondre à un entier de quatre octets int1 dans le fichier binaire. Lorsqu'il est interprété dans le Bloc-notes, il devient les quatre caractères de contrôle « NULL_NULL_NULL_SOH ».

Le stockage et la lecture de fichiers texte sont fondamentalement un processus inverse, qui ne sera pas décrit à nouveau. L'accès aux fichiers binaires est évidemment similaire à l'accès aux fichiers texte, sauf que les méthodes d'encodage/décodage sont différentes, ce qui ne sera pas décrit à nouveau.

3. Avantages et inconvénients des fichiers texte et des fichiers binaires

Étant donné que la différence entre les fichiers texte et les fichiers binaires réside uniquement dans l'encodage, leurs avantages et inconvénients résident dans l'encodage. Les avantages et les inconvénients seront plus clairs si vous recherchez un livre de codage. On pense généralement que le codage des fichiers texte est basé sur des caractères de longueur fixe et est plus facile à décoder ; le codage des fichiers binaires est de longueur variable, il est donc flexible, a une utilisation de stockage plus élevée et est plus difficile à décoder (différents formats de fichiers binaires ont différentes méthodes de décodage). Concernant l'utilisation de l'espace, pensez-y, les fichiers binaires peuvent même utiliser un bit pour représenter une signification (opération sur bit), alors que toute signification dans un fichier texte comporte au moins un caractère.

De nombreux livres pensent également que les fichiers texte sont plus lisibles et que le stockage nécessite un temps de conversion (la lecture et l'écriture nécessitent un encodage et un décodage), tandis que les fichiers binaires sont moins lisibles et que le stockage ne nécessite pas de temps de conversion (la lecture et l'écriture ne nécessitent pas d'encodage et de décodage). décodage. Écrivez la valeur directement). La lisibilité ici est du point de vue des utilisateurs de logiciels, car nous pouvons parcourir presque tous les fichiers texte à l'aide de l'outil général du Bloc-notes, donc les fichiers texte sont dits lisibles tandis que la lecture et l'écriture d'un fichier binaire spécifique nécessitent un décodeur de fichier spécifique, donc le la lisibilité des fichiers binaires est mauvaise. Par exemple, pour lire les fichiers BMP, vous devez utiliser un logiciel de lecture d'images. Le temps de conversion du stockage ici doit être du point de vue de la programmation, car certains systèmes d'exploitation tels que Windows doivent convertir les retours chariot et les sauts de ligne (remplacez « n » par « rn », donc lorsque les fichiers sont lus et écrits, le système d'exploitation doit vérifiez caractère par caractère si le caractère actuel est 'n' ou 'rn'). Ceci n'est pas requis dans le système d'exploitation Linux lors de la conversion du stockage. Bien entendu, lors du partage de fichiers sur deux systèmes d'exploitation différents, cette conversion de stockage est à nouveau possible (. par exemple, le système Linux et le système Windows partagent des fichiers texte). Concernant la manière d'effectuer cette conversion, je donnerai dans le prochain article "Conversion entre fichiers texte Linux et fichiers texte Windows" ^_^

Lecture et écriture de texte C et lecture binaire. et l'écriture

Il faut dire que la lecture et l'écriture de texte en C et la lecture et l'écriture binaire sont un problème de niveau programmation, lié au système d'exploitation spécifique, donc "les fichiers lus et écrits en mode texte doivent être des fichiers texte. Utilisation L'idée selon laquelle les fichiers lus et écrits par binaire doivent être des fichiers binaires est fausse. La description suivante n'indique pas explicitement le type de système d'exploitation, mais fait toutes référence à Windows. La différence entre la lecture et l'écriture textuelles du C et la lecture et l'écriture binaires se reflète uniquement dans le traitement des retours chariot et des sauts de ligne. Lors de l'écriture en mode texte, chaque fois qu'il rencontre un « n » (saut de ligne 0AH), il le remplace par « rn » (0D0AH, retour chariot et saut de ligne), puis l'écrit dans le fichier lors de la lecture du texte, tous les deux ; Le moment où il rencontre A 'rn' le changera inversement en 'n' puis l'enverra au tampon de lecture. Juste parce que le mode texte a une conversion entre « n » et « rn », la conversion prend du temps. Lors de la lecture et de l'écriture de binaires, il n'y a pas de conversion et les données du tampon d'écriture sont écrites directement dans le fichier.

De manière générale, d'un point de vue programmation, la lecture et l'écriture de texte ou binaire en C sont des interactions entre le tampon et le flux binaire dans le fichier, sauf qu'il y a un retour chariot et une conversion de saut de ligne lors de la lecture et de l'écriture. texte. Par conséquent, lorsqu'il n'y a pas de caractère de nouvelle ligne « n » (0AH) dans le tampon d'écriture, les résultats de l'écriture de texte et de l'écriture binaire sont les mêmes. De même, lorsqu'il n'y a pas de « rn » (0DH0AH) dans le fichier, les résultats de. la lecture de texte et la lecture binaire sont identiques.

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