快速保存\加载大数据

时间:2012-06-22 18:18:41

标签: c# .net bigdata

我有以下课程:

public class HPChartGraphPoint
{
    public int Keyword { get; set; }
    public List<long> Points { get; set; }

    public HPChartGraphPoint()
    {
        Points = new List<long>();
    }


    public string SerializeToString()
    {
        var sb = new StringBuilder();

        sb.Append(Keyword);
        sb.Append(":");

        for (int i = 0; i < Points.Count; i++)
        {
            sb.Append(Points[i]);
            sb.Append(":");
        }
        return sb.ToString();
    }

    public static HPChartGraphPoint DesirializeFromString(string str)
    {
        var splitter = str.Split(new[]{":"},StringSplitOptions.RemoveEmptyEntries)
        .Select(x => int.Parse(x)).ToArray();

        var retPoint = new HPChartGraphPoint();

        retPoint.Keyword = splitter[0];

        for (int i = 1; i < splitter.Length; i++)
        {
            retPoint.Points.Add(splitter[i]);
        }

        return retPoint;
    }


}

我需要存储和加载具有数百万个元素的集合列表。如何快速和记忆效率?

编辑:

这是存储

的代码
using (var sw = new StreamWriter(filePath))
{
                for (int i = 0; i < HPChartGraphPointCollection.Count; i++)
                {
                    sw.WriteLine(HPChartGraphPointCollection[i].SerializeToString());
                }

}

1 个答案:

答案 0 :(得分:0)

二进制格式可以比文本更紧凑,更易于阅读/解析。

您可以使用轻量级流包装器:​​BinaryReaderBinaryWriter