Altri hanno già detto, ma è perché derivano da TextReader/TextWriter e possono essere utilizzati al posto di essi.Per prima cosa ha più senso usare lo stesso metodo per l'output di linee che si usano per un file se si desidera che il contenuto sia una stringa. Se vuoi un output che si estenda su più righe in memoria, perché preoccuparsi di ricordare di mettere "\ r \ n" alla fine di ogni riga con un StringBuilder? Cosa succede se si desidera eseguire il codice o formattare i dati per un sistema che utilizza solo "\ n" per le interruzioni di riga?
StringBuilder sb = new StringBuilder();
// will be invalid on systems that only use \n
sb.AppendFormat("{0:yyyy-MM-dd HH:mm:ss} - Start\r\n", DateTime.Now);
// still have to add an extra parameter
sb.AppendFormat("The current time is {0:yyyy-MM-dd HH:mm:ss}{1}", DateTime.Now,
Environment.NewLine);
StringWriter sw = new StringWriter();
// Don't have to worry about it, method name tells you there's a line break
sw.WriteLine("{0:yyyy-MM-dd HH:mm:ss} - Start", DateTime.Now);
// no extra parameters
sw.WriteLine("The current time is {0:yyyy-MM-dd HH:mm:ss}", DateTime.Now);
dire che si desidera elaborare un file riga per riga, si sarebbe probabilmente utilizzare uno StreamReader invece di caricare l'intero file in uno StringBuilder e la divisione è da caratteri di nuova riga in un array, giusto? Con StringReader puoi usare lo stesso identico metodo (purché richieda un TextReader generico) creando StringReader da una stringa da un TextBox o da un modulo web.
I DataContex Linq2Sql hanno una proprietà Log che è possibile impostare su un TextWriter affinché le query vengano emesse prima di essere eseguite per vedere esattamente cosa viene eseguito. È possibile impostare questo a un TextWriter collegato a un file, ma è possibile allegare un StringWriter e stampare i contenuti nella parte inferiore della pagina Web durante il test ...
fonte
2010-11-30 04:47:36
Possibile duplicato di [StringWriter o StringBuilder] (http://stackoverflow.com/questions/602279/stringwriter-or-stringbuilder) –