Un archivo de texto (a veces escrito textfile ; un antiguo nombre alternativo es flatfile ) es un tipo de archivo informático que está estructurado como una secuencia de líneas de texto electrónico . Un archivo de texto existe almacenado como datos dentro de un sistema de archivos informático .
En sistemas operativos como CP/M , donde el sistema operativo no lleva un registro del tamaño del archivo en bytes, el final de un archivo de texto se indica colocando uno o más caracteres especiales, conocidos como marcadores de fin de archivo (EOF), como relleno después de la última línea en un archivo de texto. En sistemas operativos modernos como DOS , Microsoft Windows y sistemas similares a Unix , los archivos de texto no contienen ningún carácter EOF especial, porque los sistemas de archivos en esos sistemas operativos llevan un registro del tamaño del archivo en bytes.
Algunos sistemas operativos, como Multics , sistemas similares a Unix, CP/M, DOS, el clásico Mac OS y Windows, almacenan los archivos de texto como una secuencia de bytes, con un delimitador de fin de línea al final de cada línea. Otros sistemas operativos, como OpenVMS y OS/360 y sus sucesores , tienen sistemas de archivos orientados a registros , en los que los archivos de texto se almacenan como una secuencia de registros de longitud fija o de registros de longitud variable con un valor de longitud de registro en el encabezado del registro.
"Archivo de texto" se refiere a un tipo de contenedor, mientras que texto simple se refiere a un tipo de contenido.
A un nivel genérico de descripción, existen dos tipos de archivos de computadora: archivos de texto y archivos binarios . [1]
Debido a su simplicidad, los archivos de texto se utilizan comúnmente para el almacenamiento de información. Evitan algunos de los problemas que se encuentran con otros formatos de archivo, como el orden de bytes, los bytes de relleno o las diferencias en el número de bytes en una palabra de máquina . Además, cuando se produce corrupción de datos en un archivo de texto, suele ser más fácil recuperar y continuar procesando el contenido restante. Una desventaja de los archivos de texto es que suelen tener una entropía baja , lo que significa que la información ocupa más almacenamiento del estrictamente necesario.
Un archivo de texto simple puede no necesitar metadatos adicionales (aparte del conocimiento de su conjunto de caracteres ) para ayudar al lector a interpretarlo. Un archivo de texto puede no contener ningún dato, lo que constituye un caso de archivo de cero bytes .
El conjunto de caracteres ASCII es el subconjunto compatible más común de conjuntos de caracteres para archivos de texto en idioma inglés y, por lo general, se asume que es el formato de archivo predeterminado en muchas situaciones. Abarca el inglés americano, pero para el signo de la libra esterlina , el signo del euro o caracteres utilizados fuera del inglés, se debe utilizar un conjunto de caracteres más completo. En muchos sistemas, esto se elige en función de la configuración regional predeterminada en la computadora en la que se lee. Antes de UTF-8, esto era tradicionalmente codificaciones de un solo byte (como ISO-8859-1 a ISO-8859-16 ) para idiomas europeos y codificaciones de caracteres anchos para idiomas asiáticos.
Debido a que las codificaciones necesariamente tienen solo un repertorio limitado de caracteres, a menudo muy pequeño, muchas solo se pueden usar para representar texto en un subconjunto limitado de idiomas humanos. Unicode es un intento de crear un estándar común para representar todos los idiomas conocidos, y la mayoría de los conjuntos de caracteres conocidos son subconjuntos del muy grande conjunto de caracteres Unicode. Aunque hay múltiples codificaciones de caracteres disponibles para Unicode, la más común es UTF-8 , que tiene la ventaja de ser compatible con versiones anteriores de ASCII; es decir, cada archivo de texto ASCII también es un archivo de texto UTF-8 con un significado idéntico. UTF-8 también tiene la ventaja de que es fácilmente autodetectable . Por lo tanto, un modo operativo común del software compatible con UTF-8, al abrir archivos de codificación desconocida, es probar primero UTF-8 y volver a una codificación heredada que dependa de la configuración regional cuando definitivamente no es UTF-8.
En la mayoría de los sistemas operativos, el nombre archivo de texto se refiere a un formato de archivo que solo permite contenido de texto simple con muy poco formato (por ejemplo, sin tipos de letra negrita o cursiva ). Dichos archivos se pueden ver y editar en terminales de texto o en editores de texto simples . Los archivos de texto suelen tener el tipo MIMEtext/plain
, generalmente con información adicional que indica una codificación.
DOS y Microsoft Windows utilizan un formato de archivo de texto común, en el que cada línea de texto está separada por una combinación de dos caracteres: retorno de carro (CR) y avance de línea (LF). Es habitual que la última línea de texto no termine con un marcador CR-LF, y muchos editores de texto (incluido el Bloc de notas ) no insertan uno automáticamente en la última línea.
En los sistemas operativos Microsoft Windows, un archivo se considera un archivo de texto si el sufijo del nombre del archivo (la " extensión del nombre de archivo ") es .txt
. Sin embargo, se utilizan muchos otros sufijos para archivos de texto con fines específicos. Por ejemplo, el código fuente de los programas informáticos suele guardarse en archivos de texto que tienen sufijos en el nombre de archivo que indican el lenguaje de programación en el que está escrito el código fuente.
La mayoría de los archivos de texto de Microsoft Windows utilizan la codificación ANSI, OEM, Unicode o UTF-8. Lo que la terminología de Microsoft Windows denomina "codificaciones ANSI" suelen ser codificaciones ISO/IEC 8859 de un solo byte (es decir, ANSI en los menús del Bloc de notas de Microsoft es en realidad "página de códigos del sistema", codificación heredada no Unicode), excepto en configuraciones regionales como chino, japonés y coreano que requieren conjuntos de caracteres de doble byte. Las codificaciones ANSI se utilizaban tradicionalmente como configuraciones regionales del sistema predeterminadas dentro de Microsoft Windows, antes de la transición a Unicode. Por el contrario, las codificaciones OEM, también conocidas como páginas de códigos DOS , fueron definidas por IBM para su uso en el sistema de visualización en modo texto original de IBM PC . Normalmente incluyen caracteres gráficos y de dibujo de líneas comunes en las aplicaciones DOS. Los archivos de texto de Microsoft Windows codificados en "Unicode" contienen texto en formato de transformación Unicode UTF-16 . Dichos archivos normalmente comienzan con una marca de orden de bytes (BOM), que comunica el orden de bytes del contenido del archivo. Aunque UTF-8 no sufre problemas de endianness, muchos programas de Microsoft Windows (por ejemplo, el Bloc de notas) anteponen BOM al contenido de los archivos codificados en UTF-8, [2] para diferenciar la codificación UTF-8 de otras codificaciones de 8 bits. [3]
En los sistemas operativos tipo Unix , el formato de los archivos de texto se describe con precisión: POSIX define un archivo de texto como un archivo que contiene caracteres organizados en cero o más líneas, [4] donde las líneas son secuencias de cero o más caracteres que no sean de nueva línea más un carácter de nueva línea final, [5] normalmente LF.
Además, POSIX define unArchivo imprimible como un archivo de texto cuyos caracteres son imprimibles o espacio o retroceso según las reglas regionales. Esto excluye la mayoría de los caracteres de control, que no son imprimibles.[6]
Antes de la llegada de macOS , el sistema Mac OS clásico consideraba que el contenido de un archivo (la bifurcación de datos) era un archivo de texto cuando su bifurcación de recursos indicaba que el tipo de archivo era "TEXTO". [7] Las líneas de los archivos de texto clásicos de Mac OS terminan con caracteres CR. [8]
Al ser un sistema similar a Unix, macOS utiliza el formato Unix para archivos de texto. [8] El Identificador de tipo uniforme (UTI) utilizado para archivos de texto en macOS es "public.plain-text"; otros UTI más específicos son: "public.utf8-plain-text" para texto codificado en UTF-8, "public.utf16-external-plain-text" y "public.utf16-plain-text" para texto codificado en UTF-16 y "com.apple.traditional-mac-plain-text" para archivos de texto clásicos de Mac OS. [7]
Cuando se abre un archivo con un editor de texto, se presenta al usuario contenido legible por humanos. Este suele consistir en el texto sin formato del archivo visible para el usuario. Según la aplicación, los códigos de control pueden presentarse como instrucciones literales que el editor ejecuta o como caracteres de escape visibles que se pueden editar como texto sin formato. Aunque puede haber texto sin formato en un archivo de texto, los caracteres de control dentro del archivo (especialmente el carácter de fin de archivo) pueden hacer que el texto sin formato no sea visible para un método en particular.
no
hay
diferencia en cuanto al orden de bytes del flujo de bytes. UTF-8 siempre tiene el mismo orden de bytes. Un BOM inicial solo se utiliza como firma, una indicación de que un archivo de texto que no está marcado de otro modo está en UTF-8. Tenga en cuenta que algunos destinatarios de datos codificados en UTF-8 no esperan un BOM. Cuando se utiliza UTF-8
de forma transparente
en entornos de 8 bits, el uso de un BOM interferirá con cualquier protocolo o formato de archivo que espere caracteres ASCII específicos al principio, como el uso de "#!" al principio de los scripts de shell de Unix.