Двоичные файлы обычно создаются при попытке кодирования объектов. Например, у вас может быть объект Person со свойствами, такими как Имя, Возраст, Высота. Если вы хотите записать этот файл в виде текста, чтобы его можно было прочитать позже, вы можете вывести что-то вроде этого:
Name:Ralph
Age:25
Height:5'6"
Но вы можете представить его более компактно в двоичном виде. В двоичном коде вы можете просто выводить имя, возраст и рост один за другим, и вам придется считывать их обратно в том же порядке, поскольку у вас больше нет этих разделителей. В этом случае ваша строка должна была бы быть закодирована чем-то вроде Ralph\0
. \0
является нулевым символом, поэтому он знает, где заканчивается строка.
25
можно представить как 2 символа в тексте / ASCII, но если вы попытаетесь поставить два числа рядом, например, 25 и 26, вы получите 2526, и вы не будете знать, где заканчивается один и начинается следующее Эти числа на самом деле являются целыми числами и представлены 4 байтами. Когда вы записываете файл в двоичном виде, вы записываете все 4 байта, даже если самые левые биты равны 0. Таким образом, он всегда точно знает, сколько его нужно прочитать. И так далее ...
Вот почему «двоичные файлы» выглядят как бред, потому что они содержат всю эту дополнительную информацию.
Чтобы сгенерировать эти файлы, вы должны будете закодировать или «упаковать» ваши данные, как предлагает Джон Мачин.