Sample code for 30+ languages & platforms
Go

Compress String Feed to Base64

See more Compression Examples

This example receives incoming text data in chunks, compresses as a stream, and accumulates the compressed data in base64.

Chilkat Go Downloads

Go
    success := false

    // This example assumes the Chilkat API to have been previously unlocked.
    // See Global Unlock Sample for sample code.

    sbCompressedBase64 := chilkat.NewStringBuilder()

    compress := chilkat.NewCompression()
    compress.SetAlgorithm("deflate")
    compress.SetCharset("utf-8")
    compress.SetEncodingMode("base64")

    compress.SetFirstChunk(true)
    compress.SetLastChunk(false)

    bdCompressed := chilkat.NewBinData()
    sbUncompressedChunk := chilkat.NewStringBuilder()

    var i int
    for i = 0; i <= 24; i++ {
        if i == 24 {
            compress.SetLastChunk(true)
        }

        sbUncompressedChunk.Clear()
        sbUncompressedChunk.AppendInt(i)
        sbUncompressedChunk.Append(": This is a line of data to be compressed...\r\n")

        compress.CompressSb(sbUncompressedChunk,bdCompressed)

        compress.SetFirstChunk(false)
    }

    fmt.Println("The base64 encoded compressed text:")
    fmt.Println(*bdCompressed.GetEncoded("base64"))

    // Decompress in one call:
    originalText := compress.DecompressStringENC(*bdCompressed.GetEncoded("base64"))
    fmt.Println(*originalText)

    sbCompressedBase64.DisposeStringBuilder()
    compress.DisposeCompression()
    bdCompressed.DisposeBinData()
    sbUncompressedChunk.DisposeStringBuilder()