其他人已經說過了,但這是因爲它們來源於TextReader/TextWriter,可以用來代替它們。首先,如果只將內容作爲字符串使用,則使用相同的方法輸出用於文件的行的方式會更有意義。如果你想要在內存中跨越多行的輸出,爲什麼還要記住用StringBuilder在每一行的末尾加上「\ r \ n」?如果您希望代碼在只使用「\ n」換行的系統上運行或格式化數據,該怎麼辦?
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);
說你要處理的文件裏逐行,你可能會使用,而不是整個文件到一個StringBuilder和換行符拆分其加載到一個數組一個StreamReader,對不對?使用StringReader,您可以使用完全相同的方法(只要它採用通用的TextReader),方法是通過從TextBox或Web窗體的字符串中創建StringReader。
Linq2Sql DataContexts有一個Log屬性,您可以將它設置爲TextWriter,以便在執行查詢之前輸出查詢以準確查看正在運行的內容。您可以將其設置爲附加到文件的TextWriter,但您可以附加一個StringWriter並在測試時輸出網頁底部的內容...
[StringWriter的或StringBuilder的]的可能的複製(http://stackoverflow.com/questions/602279/stringwriter-or-stringbuilder) – 2016-07-04 11:52:03