Формат файла
Формат файл (англ. file format) – это представление структуры файла, он сообщает программе, как отображать его содержимое.
Например, документ Microsoft Word сохраненный в формате DOC, лучше всего просматривать этой же программой. Даже если другое приложение открывает этот файл, оно может не иметь всех функций необходимых для правильного отображения документа.
Таким образом, совместимые с файловым форматом программы покажут вам его, но не всегда смогут произвести с ним все манипуляции, как могла бы это сделать оригинальная программа. Кроме того, если открывать файлы не поддерживаемыми определенный формат программами, можно увидеть совсем не то, что ожидалось.
Общие форматы файлов
Ниже приведен список общих форматов файлов, с которыми вы, скорее всего, столкнетесь, работая за компьютером.
Формат файла | Расширение файла |
---|---|
Текстовый файл | .asc .doc .docx .txt .wpd .wps .msg |
Изображение | .bmp .eps .gif .jpg .png .tif .pict .psd |
Аудио | .acc .au .mid .mp3 .wav .flac .snd .wma |
Видео | .avi .mkv .mov .mpg .wmv |
Программа (исполняемый файл) | .bat .com .exe |
Сжатый файл (архив) | .rar .zip .arc .gz .z .tar |
Дополнительная информация
Под типом файла подразумевается тот же "формат", или расширение файла.
Какие бывают форматы файлов
Компьютер был создан, чтобы хранить и воспроизводить большое количество информации. Операционная система распознает информацию в двоичном коде, который обычный человек прочесть не сможет. Поэтому в качестве посредника между человеком и компьютером был создан файл — «контейнер» для разного рода информации.
Тип файла зависит от его содержания. Чаще всего обычному пользователю достаточно файлов в формате текст, звук, видео, изображение, таблица. Но существуют и другие форматы, понятные специалистам программирования. Например, HTML файлы, системные или файлы образа диска. После того, как происходит кодирование, система распознает файлы, чтобы определить, какая программа сможет их прочитать. Формат — это более общее понятие, чем расширение или тип файла. Например, в графическом формате существует несколько типов файлов: GIF, JPEG, TIFF и много других.
Расширения файлов
Расширение файла всегда указывается в его названии после точки и состоит из трех букв. Например, работая с файлом Word, мы можем увидеть расширение doc или docx. Благодаря расширению операционная система понимает, какой программой можно воздействовать на файл — открыть, редактировать и т.п.
Осторожно! Если преподаватель обнаружит плагиат в работе, не избежать крупных проблем (вплоть до отчисления). Если нет возможности написать самому, закажите тут.
Если расширение не указано в названии файла, значит это заложено в настройках операционной системы, которые можно поменять.
Как правило, расширение пользователю показывается графически — картинкой, которой обозначен файл. Если на месте иконки отображается чистый белый лист, значит файл не распознается. В этом случае система предложит выбрать программу для работы с файлом вручную из списка установленных.
Особенности пользовательских файлов
Текстовые документы
Файлы этого типа входят в группу наиболее используемых. Для работы с текстовыми документами в операционной системе Windows установлено приложение Word. Расширения для работы с текстом в этой программе — doc, docx, txt, rtf. Выбор зависит от назначения файла. Например, в файлах типа doc, docx, rtf можно работать с исходным текстом, добавлять таблицы, рисунки, схемы и т.д. Отформатированные тексты можно распечатывать на принтере. Для упрощенной записи без форматирования используется расширение txt в приложении «Блокнот».
Приложение Word не единственная программа для чтения и работы с текстами. Документы можно читать и редактировать в программах OpenOffice, LibreOffice. Они близки к Word, но отличаются интерфейсом и некоторыми возможностями.
Сканированные документы можно читать с помощью программ WinDjView (расширение djvu), Acrobat Reader, Foxit Reader (расширение pdf). Файлы в формате pdf можно редактировать в соответствующем приложении и включать в него векторные или растровые изображения.
Тексты для интернет-страниц создаются в формате HTML.
Рисунки
Расширений для файлов с графическими изображениями больше, чем для текстовых документов. Их можно разделить на две группы: растровые и векторные.
Растровые изображения
Растровые изображения более востребованы обычными пользователями из-за простоты в использовании. К ним относятся такие расширения, как BMP, GIF, JPEG, PNG, PSD (файлы для работы в программе Photo Shop), TIFF и другие. Отличаются они не только программным обеспечением, которое может с ними работать, но и некоторыми свойствами:
- BMP — не подвержены сжатию;
- GIF — позволяют создать анимацию небольшого объема;
- JPEG — наиболее подходящий формат для передачи и хранения цифровых фотографий, так как файлы этого расширения можно подвергать сжатию;
- TIFF — расширение свойственно изображениям высокого качества.
Векторные изображения
Векторная графика используется для профессиональной работы с изображениями. Векторные рисунки сохраняют свои пропорции при любом изменении. Файлы этого формата используют дизайнеры и иллюстраторы разных направлений. Расширения векторных изображений: AI ( Adobe Illustrator ), CDR ( Corel Draw ), EPS ( Encapsulated PostScript format ), SWF ( Adobe Flash) и другие. Все они созданы для обработки в специальных программах — графических редакторах.
Аудиофайлы
Аудиофайлы содержат цифровую запись звука. Форматы звуковых файлов отличаются по свойствам сжатия, цели использования, объему.
Современному пользователю знакомы аудиофайлы с расширениями aac, wma, ac3, ogg, m4a, ape, flac, mp3:
- AAC — аналогичен mp3, но в отличие от него при преобразовании меньше теряет в качестве. Наиболее популярное приложение для работы с файлами ААС — Winamp.
- WMA — чаще можно встретить в сети Интернет, создан для проигрывателя Windows Media Audio компанией Microsoft.
- WAV — аудиоформат, более предназначенный для записи качественного несжатого звука. Непригоден для передачи и хранения, так как занимает большой объем памяти.
- FLAC — аудиофайлы в этом расширении обладают высоким качеством, могут подвергаться сильному сжатию. Прослушивание файлов требует специальных плееров на компьютере, не подходят для передачи.
- MP3 — один из наиболее распространенных форматов. Совместим со многими аудиоустройствами, но по сравнению с flac качество звучания у таких файлов низкое. Еще один минус — mp3-файлы не годятся для редактирования.
Видеофайлы
Видеофайлы могут отличаться по нескольким параметрам: разрешение, ширина потока, частота кадров, качество изображения и глубина цвета. Разные расширения видеофайлов отличаются уровнем качества по каждому из этих параметров. Среди популярных форматов на сегодняшний день файлы типа mp4, avi, mkv, wmv, flv, mpeg, swf:
- AVI — распространенное расширение для просмотра видео. Не подходит для воспроизведения объемного звука.
- MKV — имеет широкий функционал. Например, в файлах этого типа есть возможность воспроизведению меню. Требует установки специальных программ для воспроизведения на компьютере.
- MPEG — несколько форматов видеофайлов, среди которых самым востребованным и универсальным является MPEG4. Расширение имеет высокий стандарт сжатия и подходит для использования как на ПК, так и в сети.
- FLV — предназначено для воспроизведения и хранения видеороликов в интернете.
Другие распространенные форматы файлов
Для сжатия и передачи файлов используются специальные приложения-архиваторы, которые упаковывают файлы в один контейнер. После этого файл становится меньшим по объему и получает расширение архиватора. Самые распространенные расширения rar, zip.
Если пользователь устанавливает новую программу, то она будет иметь формат exe. Считывая такое расширение, система получает команду установить приложение.
Для работы с таблицами нужны файлы в формате xls, xlsx. Они входят в офисный пакет Windows.
Еще одно популярное расширение файлов — ppt, pptx. Оно позволяет создавать и редактировать презентации.
Формат файла
Формат — спецификация структуры данных, записанных в компьютерном файле. Формат файла обычно указывается в его имени, как часть, отделённая точкой (обычно эту часть называют расширением имени файла, хотя, строго говоря, это неверно). Например, окончание имени (расширение) «.txt» обычно используют для обозначения файлов, содержащих только текстовую информацию, а «.doc» — содержащих текстовую информацию, структурированную в соответствии со стандартами программы Microsoft Word. Файлы, содержимое которых соответствует одному формату (реже — одному семейству форматов), иногда называют файлами одного типа.
Так как общепринятая в вычислительной технике концепция файла — неструктурированная последовательность байтов, компьютерные программы, сохраняющие в файлах структурированные данные, должны как-то преобразовывать их в последовательность байтов и наоборот (в ООП эти операции называются, соответственно, «сериализацией» и «десериализацией»; для текстовой информации последнее также называется «разбор» или «парсинг»). Алгоритм этого преобразования, а также соглашения о том, как различные фрагменты информации располагаются внутри файла, и составляют его «формат».
Различные форматы файлов могут различаться степенью детализации, один формат может быть «надстройкой» над другим или использовать элементы других форматов. Например, текстовый формат накладывает только самые общие ограничения на структуру данных. Формат HTML устанавливает дополнительные правила на внутреннее устройство файла, но при этом любой HTML-файл является в то же время текстовым файлом.
Содержание
Спецификации
Для многих форматов файлов существуют опубликованные спецификации, в которых подробно описана структура файлов данного формата, то, как программы должны кодировать данные для записи в этот формат и как декодировать их при чтении. Большинство таких спецификаций свободно доступны, некоторые распространяются за плату.
Иногда компании могут считать определённые форматы файлов своей коммерческой тайной и не публиковать их. Хорошо известный пример — форматы файлов пакета Microsoft Office. В некоторых случаях компания, выпустившая приложение, просто не считает нужным тратить время на написание подробной спецификации.
Если спецификация формата недоступна, то для обеспечения совместимости программы с данным форматом приходится заниматься обратной разработкой. В большинстве или во всех странах форматы файлов не защищены законами об авторских правах. Однако в некоторых странах патентами могут быть защищены алгоритмы, используемые для кодирования данных в какой-либо формат. Например, в широко распространённом формате GIF использовался патентованный алгоритм (срок действия патентов в разных странах истек в 2003-2004 гг.), что привело к разработке альтернативного формата PNG.
Определение типа файла
Для того, чтобы правильно работать с файлами, программы должны иметь возможность определять их тип. По историческим причинам, в разных операционных системах используются разные подходы для решения этой задачи.
Расширение имени файла
Некоторые операционные системы, например, CP/M, DOS, и Microsoft Windows используют для определения типа файла часть его имени, т. е. «расширение имени файла». В старых операционных системах это были три символа, отделённые от имени файла точкой (в файловых системах семейства FAT имя и расширение хранились отдельно, точка добавлялась уже на уровне ОС); в более новых системах расширение может являться просто частью имени, и тогда его длина ограничена только неиспользованной длиной имени (которая может составлять, например, 255 символов). Например, HTML-файлам может соответствовать расширение «.htm» или «.html».
Пользователь может свободно изменить расширение файла. Поскольку многие оболочки пользователя используют расширение, чтобы определить программу, с помощью которой нужно открыть файл, это может сделать последний недоступным для работы или вообще «потерять», если пользователь забудет исходное расширение. Поэтому Windows Explorer по умолчанию скрывает расширения. Эта практика имеет и обратную сторону: так как расширение файла не видно, можно обмануть пользователя, заставив его думать, что, например, файл с расширением .exe — изображение с другим расширением. В то же время, опытный пользователь может использовать возможность изменить назначенный файлу тип, просто сменив расширение, чтобы открыть его в другой программе, не указывая её напрямую. Это может быть полезно, если в программе не предусмотрено открытие файлов с каким‑то расширением, а пользователь знает, что их формат подходит для обработки в данной программе.
Магические числа
Другой способ, широко используемый в UNIX-подобных операционных системах, заключается в том, чтобы сохранить в самом файле некое «магическое число» (сигнатуру) — последовательность символов, по которой может быть опознан формат файла. Первоначально этот термин использовался для специального набора 2-байтовых идентификаторов, сохраняемых в начале файла (эта практика перекочевала и в другие ОС, например, MZ в MS-DOS), однако, любая последовательность символов, характерная для данного формата, может быть использована как «магическое число».
Для определения формата файла служит команда file, которая использует файл /usr/share/misc/magic
Метаданные
Некоторые файловые системы позволяют сохранять дополнительные атрибуты для каждого файла, т. е. «метаданные». Эти метаданные можно использовать для хранения информации о типе файла. Такой подход используется в компьютерах Apple Macintosh. Метаданные поддерживаются такими современными файловыми системами как HPFS, NTFS, ext2, ext3 и другими. Недостатком этого метода является плохая переносимость — при копировании файлов между файловыми системами разных типов метаданные могут быть потеряны.
Типы данных, определённые стандартом MIME, широко используются в различных сетевых протоколах, однако в файловых системах они пока применяются редко.
Как устроены файлы? Разбор
Файлы… что вообще может быть проще? Мы все привыкли создавать, удалять, редактировать, перекидываться файлами.
Но можем ли мы заглянуть внутрь каждого файла и понять как он устроен? Конечно можем, поэтому сегодня мы немного покопаемся в бинарном коде и пощупаем метаданные.
Заодно узнаем, почему iPhone зависает от SMS и распотрошим PowerPoint.
Почему форматов файлов так много?
Если бы мы просто могли взглянуть на сырые данные, которые хранятся внутри жесткого диска или SSD, то мы бы не увидели никаких файлов: мы бы увидели только нолики и единички. Потому как, в любом случае, в памяти компьютера всё хранится в виде сплошного потока двоичного кода.
Но как же тогда понять, где заканчивается один файл и начинается другой?
Поначалу эту проблему человечество решало брутально. Люди записывали один файл на один жесткий диск, чтобы уж точно не ошибиться. Поэтому раньше словом файл называли не отдельную область на жестком диске, а прям целое устройство. К примеру IBM 305.

CTSS (Compatible Time-Sharing System)
Но потом, люди придумали файловые системы. Если очень упростить, это такое оглавление в котором указано имя файла, где он начинается и его длина. А также всякие метаданные, типа время создания, изменения, и можно ли его перезаписывать.
Но для того чтобы прочитать файл, знать его местоположение и границы на жестком диске недостаточно, ведь нам нужно как-то расшифровать бинарный код.
Для этого и существуют различные форматы файлов. В большинстве операционных систем форматы файлов указываются в виде расширения, которое отделяется точкой от имени файла. А если вы не видите расширения, это нормально. Потому что, по умолчанию, современные ОС их скрывают, но можно поставить галочку в настройках.
Расширение даёт подсказку операционной системе и программам, о том какой тип данных он содержит и как это всё структурировано. Например, увидев файл droider.jpg операционная система и мы, люди, сразу понимаем, что это картинка в формате JPEG.
Естественно, для типов данных и разных задач оптимальной будет разная структура файла. Поэтому и форматов файлов существует огромная масса.
Поэтому давайте разберем, как устроены наиболее популярные форматы файлов от более простых к более сложным.
Один из самый простых форматов — это TXT. Это текстовый формат. Знаменитое приложение «Блокнот» в Windows работает как раз с этим форматом.
TXT — формат незамысловатый. Он может хранить в себе только простой неформатированный текст, то есть в нем нет никаких выделений, подчеркиваний, курсивов, отступов, разных шрифтов. Только голый текст, а точнее просто символы.
Каждый символ в TXT-формате хранится в виде бинарного кода.
То что мы с вами видим как осмысленный текст, операционная система видит вот так:
01001000 01100101 01101100 01101100 01101111 00101100 00100000 01110111 01101111 01110010 01101100 01100100 00100001
Каждые 8 цифр, то есть 8 бит этого кода — это отдельный символ.
Например, 01001000 — это “H”, 01100101 — это “e”, и так далее.
Но как операционная система расшифровывает эти данные? Всё просто. Операционной системе требуется загрузить таблицу, в которой описано соответствие бинарного кода конкретному символу. Таких таблиц много, самые известные сегодня — CP1251 (Windows), UTF-8 (Android, Mac) и так далее. Такие таблицы, часто называют кодировками. В данном файле используется кодировка UTF-8, то есть 8-битный Юникод.
Unicode Transformation Format, 8-bit — «формат преобразования Юникода, 8-бит»
Подобрав правильную кодировку остается дело техники. Система сопоставляет бинарный код с таблицей кодировки UTF-8 и готово! Но что будет если система подберет кодировку неправильно? Вариантов не много, скорее всего мы увидим крякозябры:
И такое часто случается, так как TXT-файл не содержит никакой дополнительной информации о кодировке. И это большой недостаток формата.
Еще интересный момент. Исторически, компьютеры «знали» только латиницу, которая используется в большинстве европейских языков. И тут произошла проблема: 8-бит — это всего лишь 256 возможных значений. Это немного, но этого было достаточно, чтобы закодировать все базовые символы + латинские буквы.
И вдобавок, эту таблицу нужно было загрузить в оперативную память при загрузке компьютера, а у типового ПК в начале 80-х годов редко было больше 640 килобайт оперативки. А использовать 16-битные таблицы (65536 вариантов) было просто невозможно, такая таблица просто не влезла бы в память.
Но мощность компьютеров росла и проблема ушла. К таблицам с латинскими символами добавились кириллические, которые занимали уже не по 8 бит, а по 16 бит каждый. Поэтому текст на русском занимает в два раза больше памяти, при том же количестве символов.
11010000 10011111 11010001 10000000 11010000 10111000 11010000 10110010 11010000 10110101 11010001 10000010 00101100 00100000 11010000 10111100 11010000 10111000 11010001 10000000 00100001
11010000 10011111 — П
11010001 10000000 — р
10111000 11010000 — и
11010000 10110010 — в
Старики помнят лайфхак, если писать SMS на латинице, то влезет в два раза больше текста. Всё это как раз из-за кодировки.
Кстати, помните все эти случаи, когда iPhone умирал от присланного сообщения со странными символами или картинки? Это как раз связано с тем, что система не могла правильно распознать присланные символы и правильно определить их длину.
Например, вот такое сообщение в своё время заставляло любой айфон уйти в цикличный ребут:
Так вот, чтобы у операционной системы не было проблем с пониманием как прочитать файл. Помимо самих данных, в разные форматы стали добавлять данные о данных. То есть метаданные, которые хранятся прямо внутри файла и содержат дополнительную информацию о том, как этот файл прочитать.
Это простой аудиоформат, который содержит несжатый. Всё CD диски записаны в формате WAV.
Первые 44 байта классического WAV-файла содержат заголовок, к котором указывается полезнейшая информация:
- количество аудио каналов;
- частота дискретизации;
- битовая глубина;
- и многое другое.
Открытые и проприетарные форматы
Структура WAV хорошо известна и наверное такой файл сможет прочитать практически любой плеер. Всё потому, что WAV-файл — это пример открытого формата.
Есть и другие открытые форматы, которыми вы ежедневно пользуетесь. Например:
- язык разметки web-страниц — HTML;
- картинки — PNG;
- аудио в формате — OGG;
- архива — ZIP;
- видео — MKV;
- электронной книги — EPUB;
- и другие.
Проприетарные форматы всем прекрасны, но в отдельных случаях они препятствуют конкуренции в сфере программного обеспечения, так как приводят к замыканию на поставщике. Есть даже такой термин Vendor lock-in.
Старый офис
Например, раньше такая ситуация была с форматами Microsoft Office: DOC, XLS, PPT.
Мало того, что это были проприетарные форматы компании Microsoft и работали только с фирменным ПО. Так еще Microsoft постоянно меняли свою структуру файлов от одной версии MS Office к другой. И в результате? при выходе новой версии офисного пакета? файлы из старого редактора уже не читались новым, а наоборот — и подавно.
Такая ситуация не очень нравилась Европейскому Союзу. Поэтому, ЕС взъелся на тему ограничения конкуренции. В итоге, форматы файлов опубличили, и все научились хотя бы их читать, но для записи в старые форматы, по-прежнему, нужна лицензия Microsoft. И параллельно этому начали разрабатываться открытые форматы.
ODF и OOXML
1 мая 2006 года на свет появился формат формат ODF, что буквально расшифровывается как открытый формат документов для офисных приложений. Он был разработан консорциумом OASIS и Sun Microsystems.
- ODF — Open Document Format for Office Application.
- OASIS — Organization for the Advancement of Structured Information Standards.
Microsoft тоже не спал. Под давлением Европейского суда они объединились с рядом компаний в ассоциацию ECMA и разработали свой открытый формат Office Open XML, который появился на свет чуть позже в 2006 году.
OOXML стандартизирован European Computer Manufacturers Association. Standard ECMA-376
К привычным форматом конце добавилась буква X и мы получили: DOCX, XLSX, PPTX.
OOXML — Office Open XML (DOCX, XLSX, PPTX)
OOXML, в целом, очень похож на ODF. Он также основан на XML-разметке и также представляет из себя ZIP-архив. Поэтому вы также можете заглянуть внутрь офисных файлов при помощи любого архиватора. Можно даже вытащить картинки и даже подменить их, что бывает особенно удобно при работе с презентациями или когда вам присылают текстовый документ с картинками внутри файла.
Несмотря на кажущуюся простоту, формат реально сложный. Только основная документация — это 5 тысяч страниц. И это практически без картинок.
Тем не менее, кто-то всё таки смог прочитать всю эту документацию и поэтому на свет появились классные офисные пакеты, например МойОфис, которые умеют работать и ODF форматом, и с Office Open XML, и даже с устаревшими форматами типа DOC.
Но есть важная ремарка про старые форматы. Как правило, современный софт умеет их только читать, но не записывать, потому как это действие требует приобретение лицензии Microsoft. Впрочем, в наше время это действие, мягко говоря, бессмысленно.
Итого
Что мы в итоге узнали? Файлы бывают нескольких типов:
Самые базовые — бинарные. Такие форматы любят придумывать компании, чтобы никто не понял, как их программы хранят данные.
Более открытый вариант — xml-контейнеры. К счастью, большинство популярных офисных форматов сейчас такие. Если хотите работать со всеми этими файлами хоть дома, хоть на бегу, скачивайте программы МойОфис! На этом у нас сегодня всё.