bélyegkép|jobbra|200px|Egy CSV-formázott szövegfájl stilizált, ikonként történő megjelenítése. A szövegfájl vagy .txt (Text fájl) az informatikában legelterjedtebb, legalapvetőbb, formázást nem tartalmazó, szöveges dokumentumformátum. Sorokba rendezett szöveget tartalmaz, a sorok végét általában újsor (soremelés, illetve soremelés és kocsi vissza) vezérlőkarakterek jelzik. A szövegfájl végét gyakran fájlvégjel (End-of-file, EOF) jelöli.

A szövegfájl kifejezés konténerformátumra utal, a plain text („sima szöveges fájl”) a tartalomra utal. A szövegfájlok lehetnek sima szöveges fájlok, de ez nem szükségszerű.

Általánosan a számítógép fájljai két csoportra oszthatók: szövegfájlok és bináris fájlokra. A szövegfájlok a bináris állományokkal ellentétben speciális programok nélkül is olvashatók, és szövegszerkesztőben megtekinthetők és szerkeszthetők, például a Notepaddal Windowson és vi-vel Linuxon. A fájlok felosztása azonban nem mindig egyértelmű.

A fájlban használható jeleket a kódolás határozza meg. A leggyakoribbak az ASCII és az UTF8, ami a Unicode-nak felel meg. A használt jeleket a szöveg emberi vagy formális nyelve (programozási vagy leírónyelv) is meghatározza. Ha a szövegfájl tartalmának feldolgozása nem igényel további feldolgozást, vagy egy speciális jelölésrendszer ismeretét, akkor a szöveget újra plain textnek nevezik. Ha a szövegfájl meghatározott notációt követel, mint például a HTML fájlok, szintén megtekinthetők és szerkeszthetők egyszerű szövegszerkesztőkkel, bár a legtöbb szövegszerkesztő ismer szintaktikai kiemelést vagy automatikus formázást.

A köznyelv szövegfájlnak nevez minden olyan fájlt, amelyek olvasható szöveget tárolnak. Az ismert szöveg- és kiadványszerkesztő programok a szöveg mellett még sok más információt, formázást, oldalméretet, szerkezeti tagolást, betűtípust, képeket és más metaadatokat tartalmaznak. Ezek összetett szerkezetűek, és a fenti értelemben nem szövegfájlok, hanem binárisak, és nem olvashatók speciális programok nélkül.

Adattárolás Egyszerűségük miatt a szöveges fájlokat gyakran használják adattárolásra, vagy jegyzetek gyors készítésére. Elkerülhető velük néhány más fájlformátumokkal megjelenő probléma, mint a bájtsorrend, a kitöltő bájtok, vagy a gépi szó hossza közötti eltérések. Ráadásul a fájl sérülése esetén könnyű akár manuálisan kijavítani a hibát és folytatni a fájl feldolgozását. A szövegfájlok hátránya alacsony entrópiájuk – más megközelítésben viszont veszteségmentes tömörítéssel könnyen csökkenthető a méretük.

Az egyszerű szövegfájl értelmezéséhez nincs szükség metaadatokra, ezért az adatokat nem tartalmazó szöveges fájl akár nulla bájt hosszúságú is lehet.

Elkülönítés a bináris fájloktól Sok operációs rendszeren a kiterjesztésre vonatkozó konvenciók határozzák meg a fájl típusát. Windows alatt a .txt kiterjesztésű fájlok szövegfájlok.

Az e-mailek formátumának szabványosításában definiált Multipurpose Internet Mail Extensions (MIME) típusok médiatípusokat adnak meg, amelyeket az e-mailforgalom mellett máshol is használnak a fájlok típusának meghatározására. A szöveges típust a text jelöli. A teljes típusmegadást egy altípus is kiegészíti, ami az alkalmazási területet jelzi. Az egyszerű szöveges fájlok, amelyek nem igényelnek további feldolgozást, a text/plain megjelölést kapják.

A szövegfájlok formázására szegényesek a lehetőségek; nem lehet például félkövérré, dőltté tenni szövegrészeket, vagy betűméretet és betűtípust választani. Egyes kódolások lehetővé teszik diakritikus jelek, ékezetes betűk bevitelét vagy az írásirány megváltoztatását.RFC 4288: Media Type Specifications and Registration Procedures. Abschnitt 4.2.1

A dokumentumszerkesztők által előállított fájlok még akkor sem számítanak szövegfájlnak, ha nem tartalmaznak formázást, mert a szöveg csak előzetes feldolgozás után, a megfelelő programmal tekinthető meg. Végső soron azonban egyes típusaik mégis szövegfájlok egy magasabb szinten, mert XML fájl írja le őket. Hasonló igaz a Portable Document Format (PDF) fájlok szövegére, mivel binárisan kódolt információk kísérik. A beszkennelt szövegek képként vannak tárolva, hacsak nem használtak egy szövegfelismerő programot.

A szövegfájlok információsűrűsége alacsony, vagyis kicsi az entrópiája, azaz nagy a redundanciájuk. Ezt például Huffman-kóddal kihasználva a tömörítők nagyobb tömörítési arányt tudnak elérni, mint bináris fájlok esetén.Hans Werner Lang (FH Flensburg): Codierungstheorie – Huffmann-Code

Sorvég felismerése A sorvég felismerésére alapvetően két lehetőség van. Az egyik, hogy a fájl sorai egyenlő hosszúak; a másik, hogy a sorvégeket külön jelek jelzik. Állandó sorhossz Az állandó sorhossznak az az előnye, hogy a pozíció anélkül állapítható meg, hogy ismét el kellene olvasni az előtte levő sorokat, vagy emlékezni kellene rájuk. Hátránya, hogy a rövid sorokat ki kell tölteni. A kitöltéshez többnyire szóközöket használnak. Emiatt, ha sok a rövid sor, akkor a fájl több helyet foglal el, mint nem fix sorhosszú formában. A rögzített sorhossz csak nagygépes környezetben használatos, ahol vagy a fájlrendszer rögzít egy egységes sorhosszat, vagy a fájl létrehozásakor kell megadni. Ez a sorhossz gyakran 80, ami megfelel a szöveges terminálok sorhosszának.G. D. Brown: zOS/JCL. Job Control Language im Betriebssystem z/OS MVS. Seite 124ff, München 2004,

Egyes programozási nyelvek, mint a Fortran és az Ada, leginkább az állandó sorhosszúságú fájlokra vannak felkészítve. A változó sorhosszú fájlok kezelése nehéz ezekben a nyelvekben.

Vezérlőjelek használata A vezérlőjelek használata az írógépek korszakát idézi. Ott az új sor kezdetét két gomb, a kocsivissza (Carriage Return, CR) és a soremelés (Line Feed, LF) jelezte. Ezek voltak a legesélyesebb jelöltek a sorvége jel szerepére; azonban elég lenne csak az egyik ahhoz, hogy az új sor kezdete ismert legyen. A különböző operációs rendszerek más és más megoldást választottak, ami napjainkban is bonyodalmakat okozhat.Kersken: IT-Handbuch für Fachinformatiker. 824f

A Windows és elődje a CR és az LF kombinációját használja A Unix alapú rendszereken LF jelzi a sorvéget Az Apple régebbi rendszerein egyedül a CR-t alkalmazták Az IBM nagygépes rendszerein még egy jel, az NL is használatos volt (lásd EBCDIC karakterkódolás).WebSphere Message Broker: Converting EBCDIC NL to ASCII CR LF

Ezek a problémák leginkább a Windows és a Unix rendszerek közötti adathordozást érintik, mivel ott a szövegfájlok sorvégjeleinek cseréjén kívül semmi más konverzióra nincs szükség.

További vezérlőjelek A sorvégek mellett más vezérlőjelek is megjelenhetnek a szövegfájlokban. A legfontosabbak a lapdobás Form Feed (FF), és a vízszintes tabulátor Horizontal Tabulation (HT), ami lehetővé teszi a szöveg bizonyos mértékű formázását. Ezek különösen akkoriban voltak fontosak, amikor a szövegfájlok tartalma közvetlenül a terminálon vagy nyomtatásban jelent meg.

A szöveg további formázását escape szekvenciák is megadhatják. Ezek egy bevezető jelből, és az utána következő karakterláncból állnak. Különböző szabványokat fogadtak el, mégpedig terminálon a Digital Equipment Corporation (DEC) szabványait (ANSI X3.41-1974 és X3.64-1977),Manual für VT100-Terminal (angol nyelven) amelyek a VT-modellekkel terjedtek el, és nyomtatásban az Epson ESC/P szabványát.

Karakterkódolás A szövegfájlok fizikailag binárisan kódolt tartalma az adott fájlra megadott szabályok szerint alakul át látható szöveggé. A leggyakoribb karakterkódok: Az ASCII a legelterjedtebb kódolás, különösen, ha bővítéseit is ideszámítjuk Az ISO 8859-1 és az ISO 8859-15 az ASCII szabványos bővítései. A Windows Windows-1252 néven ismeri, és széles körben használja Az EBCDIC az IBM nagygépein szokásos kódolás A Unicode nemzetközi szabvány, amely igyekszik minden írásjelet magába foglalni. A fenti kódolásokkal ellentétben egy karakternek nem elég 8 bit, hiszen ennél sokkal többet használnak.

bélyegkép|300px|Német nyelvű szöveg nem megfelelő kódolással ábrázolva A Unicode alkalmazásakor tehát egy jel nem fér el egy bájton. Különböző módszerek léteznek, amelyek a Unicode karaktert bájtokra kódolják. A leggyakoribb jelek esetén igyekeznek minimalizálni az elfoglalt helyet, ezért a csak ASCII karaktereket tartalmazó fájl ugyanakkora lesz UTF-8-ban, mint ASCII-ben.Michael Schönitzer: Encodings Tehát a Unicode esetén az egyes karakterek nem egyenlő méretűek.

A Unicode-ban kódolt fájl elején egy speciális bájtsorozat jelzi, hogy melyik Unicode-ban íródott. Ez a Byte Order Mark, röviden BOM. Ez azért is fontos, mert egyes rendszereken az ASCII bővítéseit és a Unicode-ot párhuzamosan használják. Az így kódolt szövegfájlok már kezdenek a bináris fájlokra hasonlítani.

Ha a fájlt egy másik karakterkódolás szerint jelenítik meg, például EBCDIC kódolású fájl ASCII-ben, akkor a fájl szövege rejtjeleződik, ami a kulcs, tehát a két kódtábla ismerete nélkül olvashatatlan. Ha ellenben mindkét kódolás az ASCII-ből származik, akkor az ékezetes vagy mellékjeles szöveg nehezen, de olvasható marad, mivel az ASCII által tartalmazott betűk úgy jelennek meg, ahogy kell, és csak a többi, például a magyar ékezetes betűk vagy a német umlautok romlanak el.

Átvitel rendszerek között Ha egy szövegfájlt átviszünk az egyik rendszerből egy másikba, gondoskodnunk kell arról, hogy az új helyen is olvasható maradjon, továbbá figyelembe kell venni a sorvégjelzést is. A csak ASCII karaktereket tartalmazó fájlok átvitele többnyire problémamentes, mert a legtöbb helyen ismerik az ASCII valamely bővítését. Az UTF-8 kódolás szerint is megmaradnak ezek a karakterek. Ha a fájl más karaktereket is tartalmaz, akkor konverzióra van szükség. Tulajdonképpen elég a fájl megnyitásakor és elmentésekor konvertálni. Ha az új helyen csak tárolják, akkor akár káros is lenne át- és visszakódolgatni.

Az e-mailek mellékletében küldött szövegfájlok is zavaróan és nehezen olvashatóan jelenhetnek meg. Ennek az az oka, hogy a küldő e-mail-kliense nem tudja kikövetkeztetni a kódolást, és a felhasználóbarátság miatt a felhasználótól sem kérheti annak megadását, így az e-mail nem tartalmazza ezt a fontos információt. Elvben ma már a legtöbb e-mail-kliens képes lenne a kódolás megválasztására. Azonban néha még maga az e-mail szövege is rosszul dekódolódik.

A fájlok közvetlen átmásolásakor többnyire speciális programok végzik el a másolást. Ezek az átkódolást, sorvégcserét is elvégzik, például Windows és IBM-nagygépek között. Másoláskor meg kell adni, hogy a másolandó fájl bináris vagy szöveges-e, mert az ilyen konverziók károsíthatják a bináris fájlokat.RFC 959: File Transfer Protocol

Formátumok UTF-8 Angol kontextusban a szövegfájlok tartalmazhatnak kizárólag ASCII karaktereket, de nemzetközi kontextusban a szövegfájlok általában 8 bitesek, hogy a nemzetközi karaktereket is tárolni tudják.

Ilyen esetekben a fájl elején megjelenhet egy Byte Order Mark, hogy meg lehessen különböztetni az UTF-8 kódolású fájlokat a hagyományos regionális kódolásoktól.http://msdn.microsoft.com/en-us/library/windows/desktop/dd374101%28v=vs.85%29.aspx

ASCII Az ASCII szabvány megengedi a kizárólag ASCII karaktereket tartalmazó szövegfájlok szabad átvitelét Unix, Macintosh, Microsoft Windows, DOS és más rendszerek között – ez sok fájltípusról nem volt elmondható. A rendszerek közti különbségek az újsor-konvencióra (CR vagy CR+LF) és az ASCII-n kívüli karakterek (különféle karakterkódolások) értelmezésére terjednek ki.

MIME A szövegfájlok MIME-typusa általában "text/plain", amit a kódolási információk egészítenek ki. A Mac OS X előtt a Mac OS rendszerek akkor tekintettek egy fájlt szövegfájlnak, ha a hozzá tartozó resource fork jelezte, hogy a fájltípus "TEXT". A Microsoft Windows alatt általában a .txt kiterjesztés jelöli, hogy szöveges fájlról van szó; de specifikus célokra más kiterjesztéseket is szokás használni a szövegfájlokra. Például számítógépes programok forráskódja esetén általában a kiterjesztés a programozási nyelvre utal, amin a kód íródott.

.TXT