Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Текстовые и бинарные файлы и файловые потоки




Различают текстовые и бинарные (двоичные) файлы и, соответственно, текстовые и бинарные файловые потоки.

Предполагается, что текстовые файлы состоят из символов и могут разделяться на строки. Любой символ в файле представляется соответствующим ему числовым кодом. Признаком перехода на следующую строку является символ '\n' с числовым кодом 10, именно это значение (10) вводится в стандартный входной поток при нажатии клавиши Enter клавиатуры. Этот символ при физической записи файла на диск во многих операционных системах (в частности, Windows) обычно заменяется парой символов с кодами 13 и 10 (шестнадцатеричные значения – 0D, 0A (“возврат каретки” и “прогон бумаги”)). При вводе в поток происходит обратное преобразование. Указанная замена может быть обнаружена при просмотре текстового файла какой-нибудь из программ, обеспечивающих побайтовый просмотр кода. Это преобразование сказывается на физической длине файла. Так, длина файла из трех 20-символьных строк будет 64 или 66 байтов, в зависимости от того, ставился ли явно признак перехода на следующую строку в конце последней строки. Именно текстовые файлы создаются и просматриваются простыми текстовыми редакторами.

Числа хранятся в текстовых файлах в виде соответствующих последовательностей символов.

Бинарные файлы содержат данные, представленные во внутреннем формате: символьные данные – в символьном, числовые – в числовом. Такие файлы позволяют компактно хранить и быстрее обрабатывать числовую информацию. При работе с ними не требуется преобразовывать числа из символьного вида при вводе и в символьный вид при выводе.

Бинарные файлы не предназначены для просмотра текстовыми редакторами, для них не предусмотрено разделение на строки. Символ '\n' записывается в бинарный файл как обычное однобайтовое значение 10 (шестнадцатеричное 0A). Длина бинарного файла совпадает с числом байтов, выведенных в поток при формировании данного файла, хотя в некоторых реализациях в бинарных файлах могут содержаться дополнительные нулевые значения для выравнивания записей, например, на границу сектора на диске. Очень часто бинарные файлы содержат данные одного и того же типа, например, только числа определенной длины или структуры определенного формата, что позволяет легко перемещаться к требуемым элементам данных.

Следует отметить, что открытие файла с указанием флага ios::binary определяет только действия, связанные с трактовкой значения 10 при работе с файлом, способ же хранения информации в файле определяется теми методами, которые применяются при формировании этого файла. “Распознать” тип существующего файла по расширению его имени нельзя, поскольку оно определяется программистом при создании файла и в общем случае может быть любым. Так, ничто не запрещает присвоить расширение.txt бинарному файлу, хотя желательно при именовании файла подчеркивать расширением его содержание.




Поделиться с друзьями:


Дата добавления: 2014-01-04; Просмотров: 1643; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.008 сек.