[70-536] Reading and writing files

Lesson 2

Reading and writing files

Questo argomento si apre parlando della classe Stream e delle classi derivate:

  • FileStream
  • MemoryStream
  • CryptoStream
  • NetworkStream
  • GZipStream

Ci sono altre classi correlate come File e Directory (entrambe statiche), FileAccess (enum con Read, Write and ReadWrite), FileMode (enum con Append, Create, CreateNew, Open, OpenOrCreate, Truncate - CreateNew rilancia eccezione se il file esiste, Open rilancia eccezione se il file non esiste, Truncate svuota il file).

Per leggere da un file:

FileStream theFile = File.Open(@"C:\boot.ini", FileMode.Open, FileAccess.Read);
StreamReader sr = new StreamReader(theFile); //anche File.OpenText(@"C:\boot.ini");
Console.Write(sr.ReadToEnd()); //anche un WriteLine(File.ReadAllText(@"C:\boot.ini");
sr.Close();
theFile.Close();

 Per scrivere un file:

FileStream theFile = File.Create(@"C:\file.ini");
StreamWriter writer = new StreamWriter(theFile); //anche File.CreateText(@"C:\file.ini");
writer.WriteLine("Hello"); //anche un File.WriteAllText(@"C:\boot.ini", "Hello");
writer.Close();
theFile.Close();

Per scrivere e leggere le classi derivano dalle astratte TextReader e TextWriter: StreamWriter e StreamReader o StringReader e StringWriter o BinaryReader e BinaryWriter.

Concetti simili per scritture in memorie con MemoryStream.

Per migliorare le performance è utile la classe BufferedStream che si interpone tra gli stream esistenti:

FileStream newFile = File.Create(@"C:\test.txt");
BufferedStream buffered = new BufferedStream(newFile);
StreamWriter writer = new StreamWriter(buffered);
writer.WriteLine("Some data");
writer.Close();
Technorati tags:

Print | posted @ giovedì 31 gennaio 2008 13:22

Comments on this entry:

Gravatar # re: [70-536] Reading and writing files
by Emanuele at 27/01/2010 21:05

Nessuna grossa differenza direi, una classe è un wrapper. Dipende da come ti trovi più comodo. File è una classe che offre metodi statici per la creazione, la cancellazione... dei file. Diciamo che aiuta nella creazione dei FileStream... non so se sono stato d'aiuto.. cmq questi esempi in particolare sono presi dalla certificazione
Gravatar # re: [70-536] Reading and writing files
by Paolo at 28/01/2010 19:46

Ciao Emanuele!
Grazie| gli esempili conoscevo perchè a più riprese ho preso a studiare per la certificazione ma non so se poi la prenderò mai!!! Mi rimaneva però questo dubbio sulla differenza tra le due classi... a questo punto mi è chiuaro che si equivalgono e poi dipende da come uno si trova meglio.

Grazie ancora,
Paolo
Comments have been closed on this topic.