如何在C#中存储和恢复3D字符串数组到文件? 你好; 我正在编写一个项目,我为公共数组创建了一个类,所以我可以在所有形式中使用它们。
类MainArray
{
// Introduce Moarefi Projeh public static string[] MPArray = new string[15]; // Introduce Moarefi Personel Rozmozd public static string[,] MPRArray = new string[20,15]; // Introduce Moarefi Peymankaran public static string[,] MPeymankaranArray = new string[20, 15]; // Introduce Gozaresh PersonelRozMozd public static string[,] GPRMArray = new string[20, 15]; public static string[,,] MArr = new string[20,20,20];
}
我以某些形式保存这些数组中的所有数据。我想创建一个类,操作员可以在程序结束时将所有这些数组存储在一个文件中,并在下次使用该程序时恢复这些数据。
你知道这是我在C#编程的第一个请给我一个我能做到的类代码。我想要一个类代码,我在我的主程序中使用一个简单的鳕鱼,如下所示: MyData.WriteArray(MyArrayName,文件名);对于商店和 MyData.ReadArray(MyArrayName,文件名);恢复。
答案 0 :(得分:2)
此代码将MyData类型的对象保存到二进制文件:
using System.IO;
using System.Runtime.Serialization.Formatters.Binary;
[Serializable()]
public class MyData
{
private string[,,] SArr;
public MyData(int sizex,int sizey,int sizez)
{
SArr = new string[sizex,sizey,sizez];
}
public MyData(string[,,] data)
{
SArr = data;
}
public string this[x,y,z]
{
get
{
return SArr[x,y,z];
}
set
{
SArr[x,y,z] = value;
}
}
public void SaveToFile(String fileName)
{
Stream TestFileStream = File.Create(fileName);
BinaryFormatter serializer = new BinaryFormatter();
serializer.Serialize(TestFileStream, this);
TestFileStream.Close();
}
public static MyData ReadFromFile(String fileName)
{
if (File.Exists(FileName))
{
Stream TestFileStream = File.OpenRead(FileName);
BinaryFormatter deserializer = new BinaryFormatter();
var data = (MyData)deserializer.Deserialize(TestFileStream);
TestFileStream.Close();
return data;
}
return null;
}
}
在代码中:
var data = new MyData(4,4,4);
MyData[1,1,0] = "TestData";
data.SaveToFile(@"C:\Test.data");
var data2 = MyData.ReadFromFile(@"C:\Test.data");
//data2[1,1,0] == "TestData"
答案 1 :(得分:1)
在保存之前,您需要序列化阵列。 Here是一个可能会帮助您的链接。