寻找一种使用 Crystal Lang 压缩文本(字符串,而不是文件)的方法:反向操作有问题

问题描述 投票:0回答:1

可以通过以下方式在 RAM 中压缩字符串

require "compress/gzip"

compressed_string = String.build do |io|
  Compress::Gzip::Writer.open(io) do |gzip|
    gzip << "Compress me"
  end
end

p compressed_string

到目前为止一切顺利,所以我想弄清楚如何进行反向变换, 但明显的镜像代码似乎并不是答案:

#########
# buggy #
#########

decompressed_string = String.build do |io|
  Compress::Gzip::Reader.open(io) do |gzip|
    gzip << compressed_string
  end
end

p decompressed_string
compression crystal-lang
1个回答
0
投票

正确的表述是:


# Compress
compressed_string = String.build do |io|
  Compress::Gzip::Writer.open(io) do |gzip|
    gzip << "Compress me"
  end
end

p compressed_string


# Decompress
str = Compress::Gzip::Reader.open(IO::Memory.new (compressed_string)) do |gzip|
  gzip.gets_to_end
end

p str
© www.soinside.com 2019 - 2024. All rights reserved.