如何在C#中存储和恢复3D字符串数组到文件?

时间:2013-01-12 10:19:29

标签: c#

如何在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,文件名);恢复。

2 个答案:

答案 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是一个可能会帮助您的链接。