[Serializable]
class CC
{
public double A;
public double B;
public string S; }
List<CC> list=new List<CC>();
private StreamReader sr =new StreamReader("C:/abccc.txt");
private void Form1_Load(object sender, EventArgs e)
{
} private string strFile = "c:/testser.obj";
private void button1_Click(object sender, EventArgs e)
{
using (FileStream fs = new FileStream(strFile, FileMode.Create))
{
var formatter = new BinaryFormatter();
var plist=new CC[list.Count];
for (int i = 0; i < plist.Count(); i++)
{ plist[i] = list[i];
}
formatter.Serialize(fs, plist);
}
} private void button2_Click(object sender, EventArgs e)
{
using (FileStream fs = new FileStream(strFile, FileMode.Open))
{
BinaryFormatter formatter = new BinaryFormatter();
var p = formatter.Deserialize(fs);
}
} private void button3_Click(object sender, EventArgs e)
{
string str = sr.ReadLine();
int i = 0;
while (!sr.EndOfStream)
{
str = sr.ReadLine();
var x = str.Split(',');
list.Add(new CC()
{
A = Convert.ToDouble(x[4]),
B = Convert.ToDouble(x[5]),
S = "TEST" }); }
}SR文件里面存了有500000条数据,反序列化一次非常非常的慢。不知道怎么可以提高性能
class CC
{
public double A;
public double B;
public string S; }
List<CC> list=new List<CC>();
private StreamReader sr =new StreamReader("C:/abccc.txt");
private void Form1_Load(object sender, EventArgs e)
{
} private string strFile = "c:/testser.obj";
private void button1_Click(object sender, EventArgs e)
{
using (FileStream fs = new FileStream(strFile, FileMode.Create))
{
var formatter = new BinaryFormatter();
var plist=new CC[list.Count];
for (int i = 0; i < plist.Count(); i++)
{ plist[i] = list[i];
}
formatter.Serialize(fs, plist);
}
} private void button2_Click(object sender, EventArgs e)
{
using (FileStream fs = new FileStream(strFile, FileMode.Open))
{
BinaryFormatter formatter = new BinaryFormatter();
var p = formatter.Deserialize(fs);
}
} private void button3_Click(object sender, EventArgs e)
{
string str = sr.ReadLine();
int i = 0;
while (!sr.EndOfStream)
{
str = sr.ReadLine();
var x = str.Split(',');
list.Add(new CC()
{
A = Convert.ToDouble(x[4]),
B = Convert.ToDouble(x[5]),
S = "TEST" }); }
}SR文件里面存了有500000条数据,反序列化一次非常非常的慢。不知道怎么可以提高性能
解决方案 »
- 在C#中,如何将struct转为IntPtr?
- 等了好久都没等到结果,二进制输出,把剩余的分都给你【急】
- c# winform 子窗体铺满MDI工作区
- C# 的 String 中,能不能保存不可见字符,比如 0x1c 或 0x1d 等?
- 怎样实现程序的鼠标拖拽功能?
- 组件间传递参数的问题
- 我想用TcpListen去监听局域网中的其他电脑的IP和PORT,如何做呢?
- 算法
- treeviewd的问题,大家有没有人遇到呢,怎么解决,100分送上!!!急!
- 祝C#论坛的朋友明年好运,散分200
- webBrowser 如何循环Navigate事件问题
- SmtpClient的超时处理和Gmail不支持Smtp吗
为啥要存CC的序列化??目的是啥。
返序列化本身是很耗时的,还不如直接把CC下的 A B S的值,以字节流的型式存文本文件里,然后读取的时候只要用遍移的方式读取出来,就非常的快了。