NuGet https://www.nuget.org/packages/lz4net/から入手できる lz4net ライブラリを使用して、LZ4 でエンコードされた文字列を解凍したいと考えています。このライブラリの GitHub サイトはhttps://github.com/MiloszKrajewski/lz4netです。
私はストリームにもこのライブラリにも精通していませんが、これまでのコードは次のとおりです。
Private Function LZ4Decompress(input As String) As String
Dim inputBytes() As Byte = System.Text.Encoding.Unicode.GetBytes(input)
Dim inputStream As New MemoryStream()
inputStream.Write(inputBytes, 0, inputBytes.Length)
inputStream.Seek(0, SeekOrigin.Begin)
Dim outputStream As New MemoryStream()
Dim outputBytes(1024) As Byte
Dim output As String
Using lzStream As New LZ4.LZ4Stream(inputStream, LZ4.LZ4StreamMode.Decompress)
' how to write to outputStream ?
End Using
outputStream.Read(outputBytes, 0, outputStream.Length)
output = System.Text.Encoding.Unicode.GetString(outputBytes)
Return output
End Function
問題:
- lzStream の長さは -1 であるため、読み取ることができません。どうすればよいですか?
- outputBytes は固定長でしかインスタンス化できません。必要なだけ大きくしたいと思います