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)
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可用于 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,那么它会尝试附加到现有文件或创建一个新文件(如果它不存在)。
不需要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)
如果您需要从字符串生成器逐行写入
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)
归档时间: |
|
查看次数: |
96631 次 |
最近记录: |