Der Unterschied zwischen Textdateien und Binärdateien: 1. Textdateien sind Dateien, die auf Zeichenkodierung basieren. Zu den gängigen Kodierungen gehören ASCII-Kodierung, UNICODE-Kodierung usw.; 2. Binärdateien sind Dateien, die auf Wertkodierung basieren
Textdateien Der Unterschied zwischen Textdateien und Binärdateien:
1. Die Definition von Textdateien und Binärdateien
Jeder weiß, dass Computerspeicher physisch binär ist, daher ist der Unterschied zwischen Textdateien und Binärdateien nicht physisch, sondern logisch von. Die beiden unterscheiden sich nur auf der Codierungsebene. Einfach ausgedrückt sind Textdateien Dateien, die auf Zeichenkodierung basieren. Zu den gängigen Kodierungen gehören ASCII-Kodierung, UNICODE-Kodierung usw. Binärdateien sind Dateien, die auf der Wertkodierung basieren. Sie können angeben, was ein bestimmter Wert entsprechend der spezifischen Anwendung bedeutet (ein solcher Prozess kann als benutzerdefinierte Kodierung betrachtet werden).
Wie Sie oben sehen können, sind Textdateien grundsätzlich mit fester Länge codiert. Jedes Zeichen ist in der spezifischen Codierung festgelegt, und UNICODE belegt im Allgemeinen 16 Bit. Die Binärdatei kann als Codierung mit variabler Länge betrachtet werden, da es sich um eine Wertcodierung handelt. Wie viele Bits einen Wert darstellen, liegt ganz bei Ihnen. Sie sind vielleicht mit BMP-Dateien vertraut. Nehmen wir es als Beispiel: Der Header besteht aus Datei-Header-Informationen mit relativ fester Länge. Die ersten 2 Bytes werden verwendet, um aufzuzeichnen, dass die Datei im BMP-Format vorliegt Zeichnen Sie die Dateilänge auf, und die nächsten 4 Bytes werden zum Aufzeichnen der Länge des BMP-Dateiheaders verwendet. . . Wie Sie sehen können, basiert die Codierung auf Werten (variable Längen, einschließlich Werten mit einer Länge von 2, 4 und 8 Bytes), sodass BMP eine Binärdatei ist.
2. Zugriff auf Textdateien und Binärdateien
Wie wird eine Datei mit einem Texttool geöffnet? Nehmen Sie Notepad als Beispiel. Es liest zunächst den binären Bitstrom, der der Datei physisch entspricht (wie bereits erwähnt, ist die Speicherung binär), interpretiert diesen Strom dann entsprechend der von Ihnen gewählten Dekodierungsmethode und zeigt dann die Interpretationsergebnisse an. Im Allgemeinen handelt es sich bei der von Ihnen gewählten Dekodierungsmethode um die Form eines ASCII-Codes (ein Zeichen des ASCII-Codes besteht aus 8 Bits). Als nächstes werden 8 Bits dieses Dateistroms interpretiert. Wenn beispielsweise für einen solchen Dateistream „01000000_01000001_01000010_01000011“ (Unterstrich „_“, den ich zur besseren Lesbarkeit manuell hinzugefügt habe) die ersten 8 Bits „01000000“ gemäß ASCII-Code dekodiert werden, ist das entsprechende Zeichen ebenfalls „A“. Die anderen drei 8-Bits können jeweils als „BCD“ dekodiert werden, d. h. dieser Dateistream kann als „ABCD“ interpretiert werden, und Notepad zeigt dann dieses „ABCD“ auf dem Bildschirm an.
Tatsächlich gibt es ein etabliertes Protokoll und eine etablierte Kodierung, wenn irgendetwas auf der Welt mit anderen Dingen kommunizieren möchte. Menschen kommunizieren miteinander durch Worte. Das chinesische Schriftzeichen „Mutter“ steht für die Person, die Sie geboren hat. Aber mir ist aufgefallen, dass sich das chinesische Schriftzeichen „Mom“ in japanischen Schriftzeichen auf die Person beziehen kann, die Sie zur Welt gebracht haben. Wenn eine chinesische Person A und eine japanische Person B das Wort „Mutter“ verwenden, um zu kommunizieren, kann es daher sehr leicht zu Missverständnissen kommen normal auftreten. Das Öffnen von Binärdateien mit Notepad ähnelt der oben beschriebenen Situation. Unabhängig davon, welche Datei geöffnet wird, arbeitet Notepad gemäß der etablierten Zeichenkodierung (z. B. ASCII-Code). Daher ist es unvermeidlich, dass beim Öffnen einer Binärdatei verstümmelte Zeichen angezeigt werden. Beispielsweise kann der Dateistream „00000000_00000000_00000000_00000001“ einer Vier-Byte-Ganzzahl int1 in der Binärdatei entsprechen, wenn er in Notepad interpretiert wird, wird er zu den vier Steuerzeichen „NULL_NULL_NULL_SOH“.
Das Speichern und Lesen von Textdateien ist grundsätzlich ein umgekehrter Vorgang, der nicht noch einmal beschrieben wird. Der Zugriff auf Binärdateien ähnelt offensichtlich dem Zugriff auf Textdateien, mit der Ausnahme, dass die Kodierungs-/Dekodierungsmethoden unterschiedlich sind und nicht noch einmal beschrieben werden.
3. Die Vor- und Nachteile von Textdateien und Binärdateien
Da der Unterschied zwischen Textdateien und Binärdateien nur in der Kodierung besteht, sind ihre Vor- und Nachteile die Vor- und Nachteile der Kodierung. Finden Sie ein Kodierungsbuch zum Lesen Dies wird klarer sein. Es wird allgemein angenommen, dass die Kodierung von Textdateien auf Zeichen fester Länge basiert und einfacher zu dekodieren ist; die Kodierung von Binärdateien hat eine variable Länge, ist also flexibel, hat eine höhere Speicherauslastung und ist schwieriger zu dekodieren (verschiedene Binärdateiformate). haben unterschiedliche Übersetzungen) Code-Methode). Bedenken Sie in Bezug auf die Speicherplatznutzung, dass Binärdateien sogar ein Bit zur Darstellung einer Bedeutung verwenden können (Bitoperation), während jede Bedeutung in einer Textdatei mindestens ein Zeichen ist.
Viele Bücher glauben auch, dass Textdateien besser lesbar sind und die Speicherung Konvertierungszeit erfordert (Lesen und Schreiben erfordern Kodierung und Dekodierung), während Binärdateien weniger lesbar sind und keine Konvertierungszeit für die Speicherung anfällt (Lesen und Schreiben erfordern keine Kodierung und Dekodierung). , einfach direkt schreiben) Wert). Die Lesbarkeit ist hier aus Sicht der Softwarebenutzer, da wir fast alle Textdateien mit dem allgemeinen Notepad-Tool durchsuchen können, sodass Textdateien als lesbar gelten, während das Lesen und Schreiben einer bestimmten Binärdatei einen bestimmten Dateidecoder erfordert Die Lesbarkeit von Binärdateien ist schlecht. Um beispielsweise BMP-Dateien zu lesen, müssen Sie eine Bildlesesoftware verwenden. Die Speicherkonvertierungszeit sollte hier aus Programmiersicht betrachtet werden, da einige Betriebssysteme wie Windows Wagenrückläufe und Zeilenvorschübe konvertieren müssen (ersetzen Sie „n“ durch „rn“, sodass das Betriebssystem beim Lesen und Schreiben von Dateien dies tun muss Überprüfen Sie zeichenweise, ob das aktuelle Zeichen „n“ oder „rn“ ist. Dies ist im Linux-Betriebssystem bei der Speicherkonvertierung natürlich nicht erforderlich. wie Linux-Systeme und Windows-Systeme, die Textdateien gemeinsam nutzen). Wie diese Konvertierung durchgeführt wird, werde ich im nächsten Artikel „Konvertierung zwischen Linux-Textdateien und Windows-Textdateien“ erläutern sagte, dass das Lesen und Schreiben von Text in C im Vergleich zum binären Lesen und Schreiben ein Problem auf Programmierebene ist, das mit dem jeweiligen Betriebssystem zusammenhängt, sodass „im Textmodus gelesene und geschriebene Dateien Textdateien sein müssen und im binären Modus gelesene und geschriebene Dateien binär sein müssen.“ Dateien." Die Ansicht ist falsch. Die folgende Beschreibung gibt nicht explizit den Betriebssystemtyp an, sondern bezieht sich ausschließlich auf Windows. Der Unterschied zwischen dem textuellen Lesen und Schreiben von C und dem binären Lesen und Schreiben spiegelt sich nur in der Verarbeitung von Wagenrückläufen und Zeilenvorschüben wider. Beim Schreiben im Textmodus wird jedes Mal, wenn es auf ein „n“ (0AH-Zeilenvorschub) trifft, dieses durch „rn“ (0D0AH, Wagenrücklauf und Zeilenvorschub) ersetzt und es dann beim Lesen von Text in die Datei geschrieben Sobald es auf A trifft, wird „rn“ es umgekehrt in „n“ ändern und es dann an den Lesepuffer senden. Nur weil es im Textmodus eine Konvertierung zwischen „n“ und „rn“ gibt, ist die Konvertierung zeitaufwändig. Beim Lesen und Schreiben von Binärdateien erfolgt keine Konvertierung und die Daten im Schreibpuffer werden direkt in die Datei geschrieben.
Aus programmtechnischer Sicht handelt es sich beim Lesen und Schreiben von Text oder Binärdaten in C im Allgemeinen um Interaktionen zwischen dem Puffer und dem Binärstrom in der Datei, mit der Ausnahme, dass es beim Lesen und Schreiben von Text zu einem Wagenrücklauf und einer Zeilenvorschubkonvertierung kommt. Wenn also kein Zeilenumbruchzeichen „n“ (0AH) im Schreibpuffer vorhanden ist, sind die Ergebnisse des Textschreibens und des Binärschreibens gleich. Wenn in der Datei kein „rn“ (0DH0AH) vorhanden ist, sind die Ergebnisse daher gleich Textlesen und binäres Lesen sind dasselbe.
Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen Textdateien und Binärdateien?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!