【发布时间】:2013-05-14 00:40:36
【问题描述】:
我对@987654322@ 中的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 值未打印在文件中。有人可以帮我解决这个问题吗?
【问题讨论】:
-
我不明白你在做什么。您认为服务器上的字符串生成器和客户端上的字符串生成器之间存在某种关系吗?
-
您确实需要发布您的实际代码,您发布的内容令人困惑,肯定不会编译
-
我正在做的是在服务器端我正在处理的东西一次会给我 1 行,我将该行存储在 StringBuffer 对象中。所以我将在 StringBuffer 对象中追加 20000 行。一旦我得到 20000 行,我将调用客户端的回调方法,在该方法中我将 StringBuilder 对象作为参数传递。在回调方法中,它会将所有 20000 行打印到我拥有的日志文件中。但是我的问题是我看到该对象被传递给客户端,但它没有将 stringbuilder 的值转储到文件中。如果我只通过参数中的行,它就可以工作。
-
所以我的问题是:是不是因为对 StringBuilder 容量的限制,我无法在 StringBuilder 对象中附加完整的 20000 行。