posts - 315, comments - 268, trackbacks - 15

My Links

News

View Pietro Libro's profile on LinkedIn

DomusDotNet
   DomusDotNet

Pietro Libro

Tag Cloud

Article Categories

Archives

Post Categories

Blogs amici

Links

.NET 4.0: ReadLines e WriteAllLines +2

Nel caso in cui una nostra applicazione abbia necessità di lavorare con i file, con la nuova versione del .Net Framework sono stati introdotti nuovi metodi statici per la classe System.IO.File. Il primo è System.IO.File.ReadLines (2 overloads), che accetta in ingresso il percorso del file da leggere (ed eventualmente un Encoding da utilizzare) e restituisce un IEnumerable<String>: uno dei vantaggi rispetto all’uso del metodo System.IO.File.ReadAllLines e che il file non deve necessariamente essere letto tutto prima di eseguire il processing delle singole linee. In caso di file molto grandi il metodo ReadAllLines può essere quindi inefficiente. L’IEnumerable<String> creato può essere utilizzato solo come  forward-only read-only. Vediamo un esempio:

foreach (string line in File.ReadLines(inputFileName))
{
    System.Console.WriteLine(line);
}

In questo primo esempio non facciamo altro che stampare sulla console il contenuto del file una linea per volta. Vediamo un altro esempio:

IEnumerable<string> lines = File.ReadLines(inputFileName);
System.Console.WriteLine("Lines: " + lines.Count());

foreach (String str in lines){ 
   System.Console.WriteLine(str);
}

In questo caso, dopo aver stampato il numero di linee contenute nel file, il foreach solleva un’eccezione del tipo ObjectDisposedException (per i motivi precedentemente citati) con il messaggio “Cannot reader from a close TextReader”.

Inoltre, sono stati aggiunti altri due overloads a System.IO.File.WriteAllLines, portando il numero totale di overloads a 4.

System.IO.File.WriteAllLines("pathfile", lines);
System.IO.File.WriteAllLines("pathfile", lines, System.Text.ASCIIEncoding.ASCII);

I due metodi accettano in ingresso un IEnumerable<String> ed eventualmente un Encoding (ad esempio ASCIIEncoding come nell’esempio). Ognuno degli overloads, dopo aver creato il file lo chiude in modo opportuno.

Print | posted on martedì 30 novembre 2010 18:38 | Filed Under [ C# .Net Framework 4.0 ]

Comments have been closed on this topic.

Powered by:
Powered By Subtext Powered By ASP.NET