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

B. *_*non 47 .net c# file-io stringbuilder windows-ce

我必须使用StringBuilder而不是String的字符串,因为这个项目坚持使用.NET 1.1.它真的让我的风格变得痉挛,让我觉得我穿着破旧的豹纹皮肤哑巴,拖着一块块状的俱乐部穿过泥土.

无论如何,我想编写一系列调试消息,我已写入文件以便在我的闲暇时学习,因为屏幕上有太多东西要看(MessageBox没有滚动条).编写文件的一些简单方法似乎在.NET 1.1中不可用.我也没有访问Environment.Newline来干净地分隔我追加的行(AppendLine在这个古老的StringBuilder版本中也不可用).

我猜想......在.NET 1.1(C#)中将StringBuilder的内容写出来的最简单的方法是什么?手持设备上没有"C"驱动器,因此我认为我必须将它写入"\ hereIAm.txt"左右.

dsc*_*arr 89

对于更新版本的.NET框架,有一种更简单的方法可以将StringBuilder的内容写入文本文件.它可以用一行代码完成.它可能不是最有效的,但现在这不是真正的问题.

System.IO.File.WriteAllText(@"C:\MyDir\MyNewTextFile.txt",sbMyStringBuilder.ToString());
Run Code Online (Sandbox Code Playgroud)

  • 谢谢你想别人.你当然帮助了我. (5认同)
  • 从.net 2.0开始 (2认同)

Dar*_*ren 72

您仍然可以访问StreamWriter:

using (System.IO.StreamWriter file = new System.IO.StreamWriter(@"\hereIam.txt"))
{
    file.WriteLine(sb.ToString()); // "sb" is the StringBuilder
}
Run Code Online (Sandbox Code Playgroud)

从MSDN文档:写入文本文件(Visual C#).

  • StreamWriter file = new StreamWriter(@"\ hereIAm.txt"); file.WriteLine(SB.ToString()); //"SB"是StringBuilder (6认同)

Ste*_*eve 7

StreamWriter可用于 NET 1.1。和Compact 框架。只需打开文件并将 ToString 应用到您的 StringBuilder:

    StringBuilder sb = new StringBuilder();
    sb.Append(......);

    StreamWriter sw = new StreamWriter("\\hereIAm.txt", true);
    sw.Write(sb.ToString());
    sw.Close();
Run Code Online (Sandbox Code Playgroud)

另请注意,您说要将调试消息附加到文件(如日志)。在这种情况下,StreamWriter 的正确构造函数是接受append布尔标志的构造函数。如果为 true,那么它会尝试附加到现有文件或创建一个新文件(如果它不存在)。


Tim*_*ter 6

不需要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.");
    }    
} 
Run Code Online (Sandbox Code Playgroud)

但是当然你可以使用它StringBuilder来创建所有行并立即将它们写入文件.

sw.Write(stringBuilder.ToString());
Run Code Online (Sandbox Code Playgroud)

StreamWriter.Write方法(字符串)(.NET Framework 1.1)

将文本写入文件(.NET Framework 1.1)


Ahm*_*laa 6

如果您需要从字符串生成器逐行写入

StringBuilder sb = new StringBuilder();
sb.AppendLine("New Line!");

using (var sw = new StreamWriter(@"C:\MyDir\MyNewTextFile.txt", true))
{
   sw.Write(sb.ToString());
}
Run Code Online (Sandbox Code Playgroud)

如果您需要将所有文本从字符串生成器中写为单行

StringBuilder sb = new StringBuilder();
sb.Append("New Text line!");

using (var sw = new StreamWriter(@"C:\MyDir\MyNewTextFile.txt", true))
{
   sw.Write(sb.ToString());
}
Run Code Online (Sandbox Code Playgroud)