在.net 1.1中将StringBuilder的内容写入文本文件的最简单方法是什么?

本文关键字:最简单 文件 文本 方法 是什么 中将 net StringBuilder | 更新日期: 2023-09-27 18:04:25

我不得不使用StringBuilder而不是字符串列表,因为这个项目坚持使用。net 1.1。

我想写一系列的调试消息,我已经写到一个文件学习在我的闲暇时间,因为有太多的看到在屏幕上(MessageBox没有滚动条)。一些编写文件的简单方法在。net 1.1中似乎不具备。我也没有访问Environment.Newline来干净地分隔我附加的行(AppendLine在这个旧版本的StringBuilder中也不可用)。

在。net 1.1 (c#)中,将StringBuilder的内容写入文件的最简单的方法是什么?手持设备上没有"C"驱动器,所以我想我必须把它写入"'hereIAm.txt"或其他东西。

在.net 1.1中将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());
}