You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Kotlin中解压指定的Gzip编码字符串?

Kotlin解压Base64编码的Gzip字符串

你提供的字符串是Base64编码后的Gzip压缩数据,解压需要分两步:先解码Base64,再用GZip解压。以下是适合新手的完整Kotlin实现代码:

import java.io.ByteArrayInputStream
import java.io.InputStreamReader
import java.util.Base64
import java.util.zip.GZIPInputStream

fun main() {
    val base64GzipString = "H4sIAAAAAAAA/6VRPQvCMBD9K+VmBxF0yNZV6KLiIiJnc4RgPkqSilL6371o0Yo4iFNy79679y7p4Gh8fYogdh1oCeJRw2Q4BdCZXOIag2IWkxLZTN/3jNVJe8ekpdcO+smXEY3BK4XDwP4c9bjdkSxPl+wnMWGGHFpisA3WW+jZNBqfQEzvbmPZ0RwSqpHSN0O6UsoiNlhT5G7mCNjQJRVbNC0VFQWlXRY+11mTkxXFiIq+rvGKMpv/kGVFqjUYnkFKo5Wz/MRF5SX9EWLRv/3IWM2dG7pEKD7oAQAA"
    
    // 1. 将Base64字符串解码为压缩字节数组
    val compressedBytes = Base64.getDecoder().decode(base64GzipString)
    
    // 2. 用GZIPInputStream解压并读取内容
    ByteArrayInputStream(compressedBytes).use { byteStream ->
        GZIPInputStream(byteStream).use { gzipStream ->
            InputStreamReader(gzipStream).use { reader ->
                val decompressedString = reader.readText()
                println(decompressedString)
            }
        }
    }
}

关键步骤说明:

  • Base64.getDecoder().decode():把Base64格式的字符串还原成原始的Gzip压缩字节数据。
  • use函数:Kotlin的扩展函数,自动帮你关闭流资源,不用手动写try-finally,避免内存泄漏。
  • GZIPInputStream:Java标准库中专门处理Gzip压缩格式的输入流,负责解压数据。
  • InputStreamReader:把字节流转换成字符流,最后用readText()直接得到解压后的字符串。

运行这段代码,你会得到解压后的内容:["L1","L2","L3","L4","L5","L6","L7","L8","L9","L10","L11","L12","L13","L14","L15","L16","L17","L18","L19","L20","L21","L22","L23","L24","L25","L26","L27","L28","L29","L30"]

内容的提问来源于stack exchange,提问作者DasDarkLord

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 13:41:13