Monthly Archives: November 2016

VB .NET Binary formatter compression to/from file

Saving a file with a binary formatter whether a dataset, datatable or parameterized Object will save lots of space

20,000 well log feet with comments and header: 3857KB with binary formatter alone
20,000 well log feet with comments and header: 551KB with binary formatter with gzip

Public Function LoadFile(settingsFile As String) As Object
Dim ds As New Object
Try
Dim fs As New FileStream(settingsFile, FileMode.Open)
Dim decompressor As New GZipStream(fs, CompressionMode.Decompress)
Dim bf As New BinaryFormatter()
ds = DirectCast(bf.Deserialize(decompressor), Object)
decompressor.Close()
fs.Close()
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
Return ds
End Function


Public Sub WriteFile(d As Object, settingsFile As String)
Dim fs As New FileStream(settingsFile, FileMode.Create)
Dim compressor As New GZipStream(fs, CompressionMode.Compress)

Dim bf As New BinaryFormatter()
bf.Serialize(compressor, d)
compressor.Close()
fs.Close()
End Sub