VB.NETで文字列の圧縮と解凍を行う

Imports System.IO
Imports System.IO.Compression
Imports System.Text

''' <summary>
''' 文字列の圧縮
''' </summary>
Protected Function CompressStr(ByVal sStr As String) As Byte()
    Dim nStrBytes As Byte() = System.Text.Encoding.UTF8.GetBytes(sStr)

    ' 入出力用のストリームを生成します 
    Using oCompressMemory As New MemoryStream()
        ' ストリームに圧縮するデータを書き込みます 
        Using oCompressStream As New DeflateStream(oCompressMemory, CompressionMode.Compress, True)
            oCompressStream.Write(nStrBytes, 0, nStrBytes.Length)
        End Using

        Return oCompressMemory.ToArray()
    End Using

End Function

''' <summary>
''' 文字列の解凍
''' </summary>
Protected Function DecompressStr(ByVal nData As Byte()) As String
    ' 入出力用のストリームを生成します
    Using oCompressedData As New MemoryStream(nData)
        ' ストリームから解凍したデータを読み込みます
        Using oCompressStream As New DeflateStream(oCompressedData, CompressionMode.Decompress, True)
            Dim nBuff(1024) As Byte
            Dim oRetStr As New StringBuilder()

            Do While oCompressStream.Read(nBuff, 0, nBuff.Length) > 0
                oRetStr.Append(System.Text.Encoding.UTF8.GetString(nBuff).TrimEnd(vbNullChar))
            Loop

            ' 解凍されたデータを文字列で取得します
            Return oRetStr.ToString()
        End Using
    End Using
End Function