【发布时间】:2015-10-23 13:13:15
【问题描述】:
我有 5GB 左右的字节形式的大数据。
我需要将此数据存储在文件ServerData.xml 中。这个数据应该先转换成字符串,然后保存到文件中,这样我们就可以对文件进行操作了。
我使用下面的代码将字节流转换为字符串,然后将其保存在文件中。
private const string fileName = "ServerData.xml";
public void ProcessBuffer(byte[] receiveBuffer, int bytes)
{
if (!File.Exists(fileName))
{
using (File.Create(fileName)) { };
}
TextWriter tw = new StreamWriter(fileName, true);
tw.Write(Encoding.UTF8.GetString(receiveBuffer).TrimEnd((Char)0));
tw.Close();
}
这是正确的方法吗?
或者请提出更好的方法,以便将来不会出现任何内存问题?
【问题讨论】:
-
对我来说,创建一个 5GB 的字符串听起来是错误的。
-
我明白,但我们别无选择。我们从第三方获取这些数据,所以我们必须处理它:(
-
根据您的prior question,您不应该将字节转换为
string只是为了保存它。正如阿列克谢列文科夫所说:“What the point of converting byte array to string (2x memory size) when you can just read it directly as stream?”。你似乎忽略了别人的好建议。 -
为什么要转换成字符串。只需在文件中写入字节。它速度快,占用空间少,
-
如果我将字节保存到文件中,那么我该如何读取它?它包含 xml 数据。请建议
标签: c#