我对C#
中的StringBuilder
有疑问。我有一个生成百万行数据的过程。我使用StringBuilder
作为缓冲。所以当我得到20000行时我打开文件并将数据转储到文件中。每20000行,我将数据转储到文件中。现在我从处理中得到一行,所以我要做的是在StringBuilder
对象(缓冲区)的新行中附加数据。但是当我使用ToString()
方法与StringBuilder
时,它不会将数据转换为String
。
public static stringBuilder Message = new StringBuilder();
Host
for(int i=0; i<20000; i++)
string Lines = " 20000 Data lines one by one appended";
Message.AppendLine(Lines);
Event(EventName, Message.ToString());
Client
Void FileWrite(String Message)
{
//Stream Writer to write the data into file.
writeToFile.Write(Message);
writeToFile.Flush();
}
这里我的客户端是WCF
客户端,它从主机的处理中获得行值。当我订阅的事件被触发时,它获得StringBuffer
的字符串值并将其打印到文件中。写入文件的方法出现在客户端。我的事件是在客户端触发的,但StringBuilder
值没有打印在文件中。谁能帮我解决这个问题?
尝试使用System.Environment.NewLine
更改您的代码以做类似的事情for(int i=0;i<20000;i++)
string Lines = " 20000 Data lines one by one appended"+System.Environment.NewLine;
Message.AppendLine(Lines);
Event( EventName, Message.ToString());
Client:
Void FileWrite(String Message)
{
//Stream Writer to write the data into file.
writeToFile.Write(Message);
writeToFile.Flush();
}