02-08-2023
Те́кстовый файл — компьютерный файл, содержащий текстовые данные, как правило, организованные в виде строк.
Текстовым файлам противопоставляются двоичные файлы, в которых содержатся данные, не рассчитанные на интерпретацию в качестве текста (например, файлы, хранящие закодированные звук или изображение).
В отличие от термина «текстовый формат», характеризующего содержимое данных, термин «текстовый файл» относится к файлу и характеризует его как контейнер, хранящий такие данные.
Текстовый файл представляет из себя последовательность символов (в основном печатных знаков, принадлежащих тому или иному набору символов). Эти символы обычно сгруппированы в строки (англ. lines, rows). В современных системах строки разделяются разделителями строк, в прошлом же применялось хранение строк в виде записей постоянной или переменной длины (см.: Перфокарта). Иногда конец текстового файла (особенно если в файловой системе не хранится информация о размере файла) также отмечается одним или более специальными знаками, известными как маркеры конца файла.
Текстовой файл может содержать как форматированный, так и неформатированный текст.
Преимущества:
Недостатки:
В силу своей простоты текстовые файлы нередко используются для хранения служебной информации (например, логов): так как операция добавления в конец текстового файла новых данных не требует сколь-нибудь значительных вычислительных ресурсов независимо от уже имеющегося объёма файла и вида добавляемых текстовых данных, ведение текстовых лог-файлов обычно происходит эффективно и незаметно для пользователя и для других приложений (вплоть до исчерпания дискового пространства). Текстовый формат служит основой для многих более специализированных форматов (например, .ini, SGML, HTML, XML, TeX, исходных текстов языков программирования).
В текстовом файле текст может храниться как в неформатированном, так и форматированном или размеченном виде (например, Rich Text Format, HTML), где к каждому символу может быть применено форматирование (шрифт, начертание, размер и т. п.).
В DOS и Windows для файлов с неформатированным текстом обычно используется расширение .txt. Тем не менее, текстовыми могут являться файлы с любым другим расширением или без оного. Например, исходные коды программ обычно хранятся в файлах с расширениями, соответствующими языку программирования, на котором написаны программы (.bas, .pas, .c).
Форматированный текст (текст с разметкой) обычно хранится в файлах с расширением, соответствующим формату или языку разметки — .rtf, .htm, .html.
Исторически для кодирования текстовых файлов применялись 7-битный набор символов ASCII, а также 8-битные EBCDIC и различные расширения ASCII. В 8-битных кодовых страницах общепринято использовать в первой половине кодовой таблицы символы, соответствующие ASCII.
Преимуществом 8-битного представления текста является программная простота и независимость от проблемы порядка байтов или длины машинного слова на разных платформах. Недостаток — большое количество различных стандартов, что может приводить к несовместимости.
Применение Unicode в текстовых файлах хотя в основном решает «проблему кодировок» и стандартизирует употребление управляющих символов, но создаёт свои проблемы. В большинстве современных систем неделимой единицей информации в потоке данных является байт (8 бит), которых для кодирования одного символа из Юникода требуется несколько. В качестве решения применяются несовместимые между собой системы UTF-8 и две версии UTF-16 (UTF-16LE и UTF-16BE с противоположным порядком байтов). Иногда в начало файла добавляют специальный символ-маркер (U+FEFF[1]), позволяющий распознать формат однозначно. UTF-8 имеет преимущество обратной совместимости с ASCII, однако программная обработка текста в UTF-8 усложняется непостоянным размером символа. Также тексты в Юникоде отличаются ещё большей избыточностью, нежели 8-битные.
Различные операционные системы придерживаются своего представления перевода строки и конца файла. В UNIX перевод строки состоит из одного символа LF (код 0xA), в Mac OS — из символа CR (код 0xD), а в DOS и Windows перевод строки кодируется последовательностью двух символов: CR и LF.
Помимо названных, в текстовых файлах применяются такие символы, как табуляция (код 9) и перевод страницы (код 0xC)[источник не указан 764 дня].
.txt.