在Vb.net中保存和加载对象

时间:2012-08-18 16:59:16

标签: vb.net

我需要将我的程序中的对象(此对象存储数据)保存到硬盘驱动器,以便我可以在下次程序启动时加载它

我尝试过使用序列化和xml文件输出,但我似乎无法正常工作,因为我的数据不是'字符串'对象类型。

我考虑使用文件open / put / get,但MSDN建议不要这样做,因为它比序列化效率低得多。

任何可以实现我的目标的简单加载/保存功能?

提前致谢 马丁

1 个答案:

答案 0 :(得分:3)

我发现我需要在序列化之前将对象转换为二进制数据。

对于其他人,这是我的职能

'Imports
Imports System.IO
Imports System.Text
Imports System.Collections
Imports System.Runtime.Serialization.Formatters.Binary
Imports System.Runtime.Serialization

'Functions
Public Function Load()
    If My.Computer.FileSystem.FileExists(mstrSaveFile) Then
        Dim fs As Stream = New FileStream(mstrSaveFile, FileMode.Open)
        Dim bf As BinaryFormatter = New BinaryFormatter()
        mstrData = CType(bf.Deserialize(fs), CType(mstrData))
        fs.Close()
    End If
    Return True
End Function

Public Function Save()
    If My.Computer.FileSystem.FileExists(mstrSaveFile) = True Then
        My.Computer.FileSystem.DeleteFile(mstrSaveFile)
    End If
    Dim fs As Stream = New FileStream(mstrSaveFile, FileMode.Create)
    Dim bf As BinaryFormatter = New BinaryFormatter()
    bf.Serialize(fs, mstrData)
    fs.Close()
    Return True
End Function