Szöveges állomány kezeléséhez a StreamWriter osztályt használhatjuk, mely a TextWriter-ből származik.
protected void button1_Click (object sender, System.EventArgs e)
{
label1.Text = Application.StartupPath + "\\test.txt";
Új állomány létrehozásához a File osztályból a CreateText-et használhatjuk, mely egy StreamWriter osztályt hoz létre és ad visszatérési értékként, valamint elvégzi a paraméterként megadott állomány létrehozását. Ha az állomány már létezett, akkor az felülírásra kerül.
StreamWriter sw = File.CreateText(label1.Text);
Ha egy szöveget szeretnénk elhelyezni az új állományban, akkor ehhez a Write, vagy a WriteLine függvény valamelyikét használhatjuk. Különbség e kettő között csupán annyi, hogy a WriteLine kiírása után egy sorvége jelet is ír, így a következő íráskor a megadott szöveg már új sorba kerül. Mind a Write, mint a WriteLine függvény számos változattal rendelkezik, melyeknél különféle adattípusok állnak rendelkezésünkre. Így például van int, double, boolean, stb. típusú is. A tárolás az állományba persze minden esetben sztringként történik, úgy hogy az adott paraméter konvertálva lesz sztringgé.
sw.WriteLine("http://www.SoftwareOnline.hu");
Van olyan változata is a Write és WriteLine függvényeknek, mely egy karaktertömbből az általunk megadott pozíciótól a megadott darab számú karaktert írja ki. Ilyenkor első paraméterbe a karakter tömb kerül átadásra, a második a kezdő pozíció, a harmadik pedig a kiírandó darab szám lesz.
char[] c = new Char[]
{
'a', 'b', 'c', 'd', 'e'
};
sw.WriteLine(c, 1, 3);
Ha paraméterként object típusú változót adunk, akkor annak szöveges reprezentációja kerül az állományunkba.
sw.WriteLine(this);
sw.WriteLine(label1);
Ha első paraméterként egy olyan sztringet adunk meg, melyben kapcsos zárójelek között számokat írunk, akkor e számok helyére a második paraméterként megadott tömbből kerülnek kicserélésre az értékek.
sw.WriteLine("Dátum: {0} Pontos idő: {1}", new object[] {DateTime.Now.Date, DateTime.Now.TimeOfDay});
Logikai érték, vagy kifejezés esetén az állományba kerülő szöveg vagy a True, vagy a False lesz.
Arra is van lehetőségünk, hogy felülbíráljuk az alapértelmezett sorvége jelet, melyet a NewLine property-be tárol a StreamWriter. Itt tulajdonképpen egy tetszőleges sztring megadható. Ha a WriteLine függvényt használjuk, akkor a paraméterként megadott sztring után a NewLine property-ben tárolt sztring kerül hozzáírásra. Ez viszont nem jelenti azt, hogy a NewLine csak olyan sztringet tartalmazhat, mely új sort ír elő.
sw.NewLine = " - ";
sw.WriteLine("1");
sw.WriteLine("2");
sw.WriteLine("3");
sw.WriteLine("4");
sw.Write("5");
A létrejött állományt végül a Close függvénnyel zárhatjuk be.
Ha a Flush függvényt hívjuk, akkor ezzel elérhetjük, hogy a memóriában lévő adatok is a lemezre kerüljenek. Ha ezt nem használjuk, akkor megeshet, hogy például csak a lezáráskor történik meg a kiírás, így egy programhiba, vagy áramszünet miatt elveszhet a már biztonságban hitt adataink egy része. Ha minden Write illetve WriteLine után szeretnénk lemezen tudni az aktuálisan kiírt szövegünket, akkor állítsuk az AutoFlush property-t igaz értékre.