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