fastlz_app.lua 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. --[[
  2. @module fastlz_app
  3. @summary fastlz_app
  4. @version 1.0
  5. @date 2025.10.28
  6. @author 沈园园
  7. @usage
  8. 本文件为fastlz应用功能模块,核心业务逻辑为:
  9. 1、演示压缩与解压缩的流程;
  10. 本文件没有对外接口,直接在main.lua中require "fastlz_app"就可以加载运行;
  11. ]]
  12. function fastlz_compress_uncompress_func(mode)
  13. -- 原始数据
  14. local originStr
  15. if mode == 1 then
  16. log.info("原始数据文件读取2K数据")
  17. originStr = io.readFile("/luadb/test.txt")
  18. else
  19. log.info("原始数据108长度字符串")
  20. originStr = "abcd1234567890efghijklmnopqrstuvwxyzabcd1234567890efghijklmnopqrstuvwxyzabcd1234567890efghijklmnopqrstuvwxyz"
  21. end
  22. local maxOut = #originStr
  23. log.info("原始数据长度", #originStr)
  24. -- 以压缩等级1 进行压缩
  25. local L1 = fastlz.compress(originStr,1)
  26. log.info("压缩等级1:压缩后的数据长度", #L1)
  27. -- 解压
  28. local dstr1 = fastlz.uncompress(L1,maxOut)
  29. log.info("压缩等级1:解压后的的数据长度", #dstr1)
  30. -- 判断解压后的数据是否与原始数据相同
  31. if originStr == dstr1 then
  32. log.info("压缩等级1:解压后的数据与原始数据相同")
  33. else
  34. log.info("压缩等级1:解压后的数据与原始数据不同")
  35. end
  36. -- 以压缩等级2 进行压缩
  37. local L2 = fastlz.compress(originStr, 2)
  38. log.info("压缩等级2:压缩后的数据长度", #L2)
  39. -- 解压
  40. local dstr2 = fastlz.uncompress(L2,maxOut)
  41. log.info("压缩等级2:解压后的数据长度", #dstr2)
  42. -- 判断解压后的数据是否与原始数据相同
  43. if originStr == dstr2 then
  44. log.info("压缩等级2:解压后的数据与原始数据相同")
  45. else
  46. log.info("压缩等级2:解压后的数据与原始数据不同")
  47. end
  48. end
  49. function fastlz_task_func()
  50. -- 原始数据108长度字符串
  51. fastlz_compress_uncompress_func()
  52. -- 原始数据文件读取2K数据
  53. fastlz_compress_uncompress_func(1)
  54. end
  55. --创建一个task,并且运行task的主函数fastlz_task_func
  56. sys.taskInit(fastlz_task_func)