différence entre un fichier texte et un fichier binaire

Pourquoi faire la distinction entre les fichiers texte et les fichiers binaires lors de leur transmission? Pourquoi il y a quelques canaux conçu uniquement pour les données textuelles? Au niveau du bas, ce sont tous des bits.

29
demandé sur andrew 2011-05-18 05:49:24

5 réponses

au niveau du bas, ce sont tous des bits... vrai. Cependant, certains canaux de transmission de sept bits par octet, et d'autres canaux de transmission de huit bits par octet. Si vous transmettez du texte ASCII sur un canal de sept bits, alors tout va bien. Les données binaires sont endommagées.

de plus, différents systèmes utilisent différentes conventions pour les fins de ligne: LF et CRLF sont communs, mais certains systèmes utilisent CR ou NEL. Un mode de transmission de texte convertit les fins de ligne automatiquement, qui endommager des fichiers binaires.

cependant, tout cela est surtout d'intérêt historique ces jours-ci. La plupart des canaux de transmission sont à huit bits (comme HTTP) et la plupart des utilisateurs sont d'accord avec la fin de ligne qu'ils obtiennent.

Quelques exemples de 7 bits des canaux: SMTP (nominalement, sans extensions), SMS, Telnet, quelques connexions en série. L'internet n'a pas toujours été construit sur TCP/IP, et cela se voit.

de plus, la spécification HTTP stipule que,

sous forme canonique, les sous-types de média du type "text" utilisent CRLF comme rupture de ligne de texte. HTTP assouplit cette exigence et permet le transport de supports de texte avec CR ou LF simple représentant une rupture de ligne quand il est fait de manière cohérente pour une entity-body entière.

20
répondu Dietrich Epp 2011-05-18 02:03:40

tous les fichiers sont sauvegardés dans l'un des deux formats de fichier - binaire ou texte. Les deux types de fichiers peuvent être identiques en surface, mais leurs structures internes sont différentes.

alors que les fichiers binaires et les fichiers texte contiennent des données stockées sous la forme d'une série de (bits (valeurs binaires de 1s et Os), les bits dans les fichiers texte représentent des caractères, tandis que les bits dans les fichiers binaires représentent des données personnalisées.

7
répondu munendra 2011-12-04 09:16:41

il est important de faire une distinction entre les deux puisque différents logiciels libres traitent les fichiers texte différemment. Par exemple, dans *nix, vous terminez vos lignes avec juste \n dans MS OSs vous utilisez \r\n et dans Macs vous utilisez \n\r. Des logiciels tels que les clients FTP tentent de modifier les fins de ligne sur les fichiers texte pour correspondre à l'OS de destination en ajoutant/supprimant les caractères. Ceci est pour s'assurer que le fichier texte va regarder correctement sur le système d'exploitation de destination.

par exemple, si vous créez un fichier texte dans *nix with line breaks et essayez de le copier dans une fenêtre en tant que fichier binaire et de l'ouvrir dans notepad, vous ne verrez aucune fin de ligne, mais juste un bouchon de texte.

5
répondu Rasika 2011-05-18 01:57:10

il est Important d'Ajouter aux réponses déjà fournies que les fichiers texte et les fichiers binaires représentent tous deux des octets, mais que les fichiers texte diffèrent des fichiers binaires en ce que les octets sont compris comme représentant des caractères. La mise en correspondance des octets et des caractères se fait de façon uniforme dans le fichier à l'aide d'une page de code ou D'un Unicode. Lorsque vous utilisez des pages de code de 7 ou 8 bits, vous pouvez tourner le cadran en lisant ces fichiers et les interpréter avec un alphabet anglais, un alphabet allemand, l'alphabet russe, ou d'autres. Ce la rotation du cadran n'affecte pas les octets, elle affecte les caractères choisis pour correspondre aux octets.

comme d'autres l'ont dit, il y a aussi la question de l'encodage des séparateurs de rupture de ligne qui est unique aux fichiers texte et qui peut différer d'une plate-forme à l'autre. Le "saut de ligne" n'est pas une lettre de notre alphabet ou un symbole, vous pouvez écrire, si d'autres règles s'appliquent.

avec les fichiers binaires il n'y a pas de convention implicite sur l'encodage des caractères ou sur la définition de "ligne".

1
répondu Mishax 2015-05-28 10:18:02

tous les fichiers de langue machine sont en fait des fichiers binaires.

pour ouvrir un fichier binaire, le mode fichier doit être mentionné comme "rb"ou "wb"dans la commande fopen. Sinon, tous les fichiers sont ouverts en mode par défaut, qui est le mode texte.

on peut noter que les fichiers texte peuvent aussi être stockés et traités comme des fichiers binaires mais pas viceversa.

les fichiers binaires diffèrent du fichier texte de 2 façons:

  1. le stockage de la newline les caractères
  2. Le caractère EOF

par exemple:

  • WT-t signifie textfile
  • Wb-B signifie binaryfile

les fichiers binaires ne stockent pas de caractère particulier à la fin de chaque fin de fichier est vérifié en utilisant leur taille elle-même.

-1
répondu user6003105 2016-03-01 15:30:13