在.net 1.1中将StringBuilder的内容写入文本文件的最简单方法是什么?
本文关键字:最简单 文件 文本 方法 是什么 中将 net StringBuilder | 更新日期: 2023-09-27 18:04:25
我不得不使用StringBuilder而不是字符串列表,因为这个项目坚持使用。net 1.1。
我想写一系列的调试消息,我已经写到一个文件学习在我的闲暇时间,因为有太多的看到在屏幕上(MessageBox没有滚动条)。一些编写文件的简单方法在。net 1.1中似乎不具备。我也没有访问Environment.Newline
来干净地分隔我附加的行(AppendLine
在这个旧版本的StringBuilder中也不可用)。
您仍然可以访问StreamWriter
:
using (System.IO.StreamWriter file = new System.IO.StreamWriter(@"'hereIam.txt"))
{
file.WriteLine(sb.ToString()); // "sb" is the StringBuilder
}
来自MSDN文档:写入文本文件(Visual c#).
对于较新版本的。net框架(版本2.0。),这可以通过使用File.WriteAllText
方法的一行来实现。
System.IO.File.WriteAllText(@"C:'TextFile.txt", stringBuilder.ToString());
我知道这是一篇老文章,它想要一个。net 1.1的答案,但是已经有一个很好的答案了。我认为,对于那些在这篇文章中找到。net框架最新版本的人(比如我自己)来说,有一个答案是很好的。
在这些情况下,有一种更简单的方法可以将StringBuilder的内容写入文本文件。这可以用一行代码完成。这可能不是最有效的,但这不是真正的问题,是吗?System.IO.File.WriteAllText(@"C:'MyDir'MyNewTextFile.txt",sbMyStringBuilder.ToString());
不需要StringBuilder
:
string path = @"c:'hereIAm.txt";
if (!File.Exists(path))
{
// Create a file to write to.
using (StreamWriter sw = File.CreateText(path))
{
sw.WriteLine("Here");
sw.WriteLine("I");
sw.WriteLine("am.");
}
}
但是当然你可以使用StringBuilder
来创建所有的行,并一次将它们写入文件。
sw.Write(stringBuilder.ToString());
StreamWriter.Write
Method (String). NET Framework 1.1)
向文件写入文本. NET Framework 1.1)
StreamWriter在。NET 1.1中可用。以及契约框架。只需打开文件并将ToString应用到StringBuilder中:
StringBuilder sb = new StringBuilder();
sb.Append(......);
StreamWriter sw = new StreamWriter("''hereIAm.txt", true);
sw.Write(sb.ToString());
sw.Close();
另外,请注意,您说要将调试消息附加到文件中(如日志)。在这种情况下,StreamWriter的正确构造函数是接受append
布尔标志的构造函数。如果为true,则尝试追加到现有文件,如果不存在则创建一个新文件。
如果您需要从string builder中逐行写入
StringBuilder sb = new StringBuilder();
sb.AppendLine("New Line!");
using (var sw = new StreamWriter(@"C:'MyDir'MyNewTextFile.txt", true))
{
sw.Write(sb.ToString());
}
如果您需要将string builder
中的所有文本写成一行StringBuilder sb = new StringBuilder();
sb.Append("New Text line!");
using (var sw = new StreamWriter(@"C:'MyDir'MyNewTextFile.txt", true))
{
sw.Write(sb.ToString());
}