我有一个对象,想把它保存成一个文件,请问怎样写?
如这个对象是arraylist,Hashtable等

解决方案 »

  1.   

    序列化后,可以将他保存成二进制,或是XML...
      

  2.   

    using System;
    using System.Text;
    using System.Runtime.InteropServices;
    using System.IO;
    using System.Runtime.Serialization.Formatters.Binary;namespace ObjectinFile
    {
    public class FileObject
    {
    public byte[] ObjectToBytes(object data)   
    {   
    BinaryFormatter Formatter = new BinaryFormatter();   
    MemoryStream  MemStr = new MemoryStream();   
    Formatter.Serialize(MemStr,   data);   
    return MemStr.GetBuffer();   
    }       
    public object BytesToObject(byte[] data)   
    {   
    BinaryFormatter Formatter = new BinaryFormatter();   
    MemoryStream MemStr = new MemoryStream(data);     
    return Formatter.Deserialize(MemStr);   
    }
    public void SaveFile(byte[] data,string Filename)
    {
    FileStream FileWrite =new FileStream(Filename,FileMode.Create);
    FileWrite.Write(data,0,data.Length);
    FileWrite.Close();
    }
    public object LoadFile(string Filename)
    {
    FileStream FileRead =new FileStream(Filename,FileMode.Open);
    byte[] data =new byte[FileRead.Length];
    FileRead.Read(data,0,data.Length);
    return BytesToObject(data);
    }
    }
    }
      

  3.   

    我改了一下,变为静态类using System;
    using System.Text;
    using System.Runtime.InteropServices;
    using System.IO;
    using System.Runtime.Serialization.Formatters.Binary;namespace loginApp.DataBase
    {
        static class FileObject
        {
            public static byte[] ObjectToBytes(object data)
            {
                BinaryFormatter Formatter = new BinaryFormatter();
                MemoryStream MemStr = new MemoryStream();
                Formatter.Serialize(MemStr, data);
                return MemStr.GetBuffer();
            }        public static object BytesToObject(byte[] data)
            {
                BinaryFormatter Formatter = new BinaryFormatter();
                MemoryStream MemStr = new MemoryStream(data);
                return Formatter.Deserialize(MemStr);
            }        public static void SaveFile(object data, string Filename)
            {
                FileStream FileWrite = new FileStream(Filename, FileMode.Create);
                byte[] tmpDataB = ObjectToBytes(data);
                FileWrite.Write(tmpDataB, 0, tmpDataB.Length);
                FileWrite.Close();
            }        public static object LoadFile(string Filename)
            {
                FileStream FileRead = new FileStream(Filename, FileMode.Open);
                byte[] data = new byte[FileRead.Length];
                FileRead.Read(data, 0, data.Length);
                return BytesToObject(data);
            }    }
    }