如何在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
相关产品推荐
相关产品推荐

