创世魂 发表于 2023-10-9 21:29:27

【解决方案】火山安卓GZIP解压GZIP压缩


这两个方法在无名模块里面也可以找到。不想使用模块的可以直接复制下面的代码。





<火山程序 类型 = "通常" 版本 = 1 />

方法 网页_解压 <公开 静态 类型 = "字节 []" 注释 = "进行gzip解压操作,如有bug请加群反馈:710113438" 返回值注释 = "失败返回0数组" 折叠>
参数 要解压的数据 <类型 = "字节 []" 注释 = "提供要解压的gzip数据">
{
    如果 (要解压的数据 != 空对象 || 取数组成员数 (要解压的数据) > 0)
    {
      变量 数组输出流 <参考 类型 = 字节数组输出流>
      数组输出流 = 字节数组输出流.创建 (1)
      变量 数组输入流 <参考 类型 = 字节数组输入流>
      数组输入流 = 字节数组输入流.创建 (要解压的数据)
      变量 GZIP <参考 类型 = GZIP输入流>
      GZIP = GZIP输入流.创建GZIP输入流 (数组输入流)
      变量 缓冲区 <类型 = "字节 ">
      变量 读入尺寸 <类型 = 整数>
      判断循环 (读入尺寸 != -1)
      {
            读入尺寸 = GZIP.读入数据2 (缓冲区, 空对象)
            数组输出流.写出数据 (缓冲区, 0, 读入尺寸)
      }
      GZIP.关闭 ()
      数组输入流.关闭 ()
      数组输出流.写出缓存 ()
      变量 解压后数据 <类型 = "字节 []">
      解压后数据 = 数组输出流.取已写入数据 ()
      数组输出流.关闭 ()
      返回 (解压后数据)
    }
    返回 (新建数组 (字节, 0))
}

方法 网页_压缩 <公开 静态 类型 = "字节[]" 注释 = "进行gzip压缩操作,如有bug请加群反馈:710113438" 返回值注释 = "失败返回0数组" 折叠>
参数 要压缩的数据 <类型 = "字节 []" 注释 = "提供要压缩的数据">
{
    如果 (要压缩的数据 != 空对象 || 取数组成员数 (要压缩的数据) > 0)
    {
      变量 数组输出 <参考 类型 = 字节数组输出流>
      数组输出 = 字节数组输出流.创建 (1)
      变量 GZIP <参考 类型 = GZIP输出流>
      GZIP = GZIP输出流.创建GZIP输出流 (数组输出)
      GZIP.写出数据2 (要压缩的数据)
      GZIP.关闭 ()
      变量 已写入 <类型 = "字节 []">
      已写入 = 数组输出.取已写入数据 ()
      数组输出.写出缓存 ()
      数组输出.关闭 ()
      返回 (已写入)
    }
    返回 (新建数组 (字节, 0))
}





繁现代 发表于 2023-11-21 13:16:37

:(:D:victory:
页: [1]
查看完整版本: 【解决方案】火山安卓GZIP解压GZIP压缩