日期:2014-05-20  浏览次数:20834 次

序列化
for (int i = 0; i < phi.Count; i++)
  {

  FileStream fileStream = null;
  //定义一个文件流
  fileStream = new FileStream("enterInfo.txt", FileMode.Create);
  StreamWriter sw = new StreamWriter(fileStream);
  sw.WriteLine("入库单相信信息表");
  sw.WriteLine("入库单编号" + phi[i].Coding);
  sw.WriteLine("药品编号" + phi[i].Storeroomcoding);
  sw.WriteLine("名称" + phi[i].Name);
  sw.WriteLine("进价" + phi[i].JoinPrice);
  sw.WriteLine("售价" + phi[i].Price);
  sw.WriteLine("差价" + phi[i].PriceIfference);
  sw.WriteLine("数量" + phi[i].Count);
  sw.WriteLine("进价总额" + phi[i].JoinLend);
  sw.WriteLine("销售总额" + phi[i].Distribution);
  num=num+phi[i].Count;
  //关闭文件流
  sw.Close();
  fileStream.Close();
  }
phi是一个集合,我想把这个集合里的东西都打印出来,可是最后打印的却是这个集合中的最后一行,看这代码有没有可以改进的,帮我实现最后效果。如果不行请帮忙给出其他代码(注:将集合中全部对象的属性值打印出来)。

------解决方案--------------------
你每次都创建文件,然后写入内容,覆盖前面的内容,结果就是最后一条记录被 保存在文件里。

改成下面的样子吧
 FileStream fileStream = null; 
//定义一个文件流 
fileStream = new FileStream("enterInfo.txt", FileMode.Create); 
StreamWriter sw = new StreamWriter(fileStream); 

for (int i = 0; i < phi.Count; i++) 


sw.WriteLine("入库单相信信息表"); 
sw.WriteLine("入库单编号" + phi[i].Coding); 
sw.WriteLine("药品编号" + phi[i].Storeroomcoding); 
sw.WriteLine("名称" + phi[i].Name); 
sw.WriteLine("进价" + phi[i].JoinPrice); 
sw.WriteLine("售价" + phi[i].Price); 
sw.WriteLine("差价" + phi[i].PriceIfference); 
sw.WriteLine("数量" + phi[i].Count); 
sw.WriteLine("进价总额" + phi[i].JoinLend); 
sw.WriteLine("销售总额" + phi[i].Distribution); 
num=num+phi[i].Count; 
//关闭文件流 


 sw.Close(); 
fileStream.Close();