Das Kefk Network Wiki befindet sich im Testbetrieb.
Binär- und Textdatei
Aus Kefk.
Dateien lassen sich im Allgemeinen in zwei Kategorien unterteilen: Binärdateien und Textdateien. Eine Textdatei ist der Spezialfall einer Binärdatei, bei der fast alle in der Datei enthaltenen Zeichen als Text darstellbar und somit für den Menschen leicht lesbar sind.
Die Unterscheidung ist etwas spitzfindig, denn die eigentlichen Schaltkreise, die dafür sorgen, dass Informationen auf einen Datenträger geschrieben oder von diesem gelesen werden, kennen keine solche Unterscheidung zwischen Text und anderen Binär-Daten. Die Software, die sich mit diesen Schaltkreisen beschäftigt, macht diese Unterscheidung ebenfalls nicht. Auf der anderen Seite sind Menschen durchaus an der Unterscheidung interessiert.
Eine mögliche Unterscheidung könnte lauten: Alle Dateien, die nur 7-Bit-Zeichen benutzen, sind Textdateien und Dateien, die auch 8-Bit-Zeichen (über dem ASCII-Wert 127) benutzen, sind Binärdateien. Diese Einteilung wird beispielsweise bei FTP benutzt.
Im folgenden Java-Beispielcode zur Unterscheidung von Text- und Binärdateien wird die Tatsache ausgenutzt, dass in Binärdateien Null-Bytes vorkommen:
public static boolean binaryCheck(File f) {
boolean bin = false;
try {
BufferedInputStream bis = new BufferedInputStream(
new FileInputStream(f));
byte[] b = new byte[4096];
int ok = 0;
while (ok != -1) {
ok = bis.read(b, 0, b.length);
for (int i = 0; i < ok; i++)
if (b[i] == 0) {
bin = true;
ok = -1;
}
}
} catch (Exception e) {
e.printStackTrace();
}
return bin;
}
