程序在运行后对一个整形数组赋值,只有12个值,如何使程序在下次运行时能调用程序上一次运行后对这个数组赋的值,因为值太少,所以不用数据库该怎么解决?
应该采用什么样的方法,存在计算机的缓存中应该是不可能的,我自己想的是能不能存储或关联类似记事本中这样的方法?或者别的???
想不通,请教高手该如何解决!!!!
诚谢!

解决方案 »

  1.   

    可以用xml文档保存这些数据,下次程序运行的时候再从这个xml文件中取。
      

  2.   

    你可以保存在TXT文本里面
    一个值一行
    读取的话
    FileStream fs = new FileStream(文本路径);
    SreamReader sr = new StreamReader(fs,FileMode.Open,FileAccess.Read);
    string _str ="";
    int[] _i = new int[12];
    int i=0;
    while((_str = sr.ReadLine())!="")
    {
    _i[i] = (int)_str;
    i++;
    }
    sr.close();
    fs.close();
      

  3.   

    [Serializable]
    public class MyObject {
      public int n1 = 0;
      public int n2 = 0;
      public String str = null;
    }
     以下代码示例说明该类的实例是如何被序列化到一个文件中的。C#  复制代码 
    MyObject obj = new MyObject();
    obj.n1 = 1;
    obj.n2 = 24;
    obj.str = "Some String";
    IFormatter formatter = new BinaryFormatter();
    Stream stream = new FileStream("MyFile.bin", FileMode.Create, FileAccess.Write, FileShare.None);
    formatter.Serialize(stream, obj);
    stream.Close();
     该示例使用二进制格式化程序执行序列化。您需要做的所有工作就是创建流的实例和您想要使用的格式化程序,然后对该格式化程序调用 Serialize 方法。要序列化的流和对象作为参数提供给该调用。尽管在此示例中并没有显式阐释这一点,但一个类的所有成员变量都将被序列化,即使是那些已标记为私有的变量。在此方面,二进制序列化不同于 XMLSerializer 类,后者只序列化公共字段。有关从二进制序列化中排除成员变量的信息,请参见有选择的序列化。将对象还原回其以前的状态十分简单。首先,创建用于读取的流和格式化程序,然后指示格式化程序反序列化该对象。下面的代码示例说明如何执行上述的操作。C#  复制代码 
    IFormatter formatter = new BinaryFormatter();
    Stream stream = new FileStream("MyFile.bin", FileMode.Open, FileAccess.Read, FileShare.Read);
    MyObject obj = (MyObject) formatter.Deserialize(stream);
    stream.Close();// Here's the proof.
    Console.WriteLine("n1: {0}", obj.n1);
    Console.WriteLine("n2: {0}", obj.n2);
    Console.WriteLine("str: {0}", obj.str);
     
      

  4.   

    建议楼主将这些数据保存在Settings当中啊,用起来非常方便,直接用Properties.Settings.Default.XXX就可以访问了,其中XXX是你在Settings中保存的变量名
      

  5.   

    你可以使用Xml文件写入:XmlDocument doc = new XmlDocument();
    XmlDeclaration xd = doc.CreateXmlDeclaration("1.0", "utf-8", null);
    doc.AppendChild(xd);
    XmlElement root = doc.CreateElement("root");
    int[] data = new int[12] { 1,2,3,4,5,6,7,8,9,0,1,2};
    for(int i = 0 ; i < data.Length;i++)
    {
        XmlElement xe = doc.CreateElement("data" + i);
        xe.InnerText = data[i].ToString();
        root.AppendChild(xe);
    }
    doc.AppendChild(root);
    doc.Save("e:\\1.xml");
    读取:XmlDocument doc = new XmlDocument();
    doc.Load("e:\\1.xml");
    XmlNode root = doc.DocumentElement;
    int[] data = new int[12];
    for (int i = 0; i < root.ChildNodes.Count;i++ )
    {
        data[i] = Convert.ToInt32(root.ChildNodes[i].InnerText);
    }
      

  6.   

    当然你也可以使用序列化与反序列化的办法
    具体参见XmlSerializer类