当前位置: 首页 > news >正文

网站开发现在主要用什么语言企业网站运维

网站开发现在主要用什么语言,企业网站运维,用html表格做的网站,如何判断网站是否被k上文的简易压缩/解压程序在解压缩较大文件时出错&#xff0c;输出到文件为0字节。 请输入要解压的.zst文件路径: vzstd.zst 请输入解压后文件保存路径: var.txt 正在解压 vzstd.zst... 解压完成! 压缩文件: vzstd.zst (88089043 字节) 解压文件: var.txt (0 字节) <…

上文的简易压缩/解压程序在解压缩较大文件时出错,输出到文件为0字节。

请输入要解压的.zst文件路径: vzstd.zst
请输入解压后文件保存路径: var.txt
正在解压 vzstd.zst...
解压完成!
压缩文件: vzstd.zst (88089043 字节)
解压文件: var.txt (0 字节)        <---------------no data in output file
耗时: 0.43

我在github上提出此问题,
kbkpbot 回答如下

os.write_bytes(output_file, decompressed_data)

For small zstd file, you can use compress()/decompress() directly.
For large zstd file, because V internal array size limit(it use int which has a limit), you can’t use a supper large buffer now, I suggest use a stream mode compress/decompress.

并提供了解决此问题的具体改用流式函数实现,

const buf_in_size = 1024 * 1024
const buf_out_size = 1024 * 1024fn decompress_file_fun(fname string, oname string, params zstd.DecompressParams) ! {mut fin := os.open_file(fname, 'rb')!mut fout := os.open_file(oname, 'wb')!defer {fin.close()fout.close()}mut buf_in := []u8{len: buf_in_size}mut buf_out := []u8{len: buf_out_size}mut dctx := zstd.new_dctx(params)!defer {dctx.free_dctx()}mut input := &zstd.InBuffer{src:  buf_in.datasize: 0pos:  0}mut output := &zstd.OutBuffer{dst:  buf_out.datasize: 0pos:  0}mut last_ret := usize(0)for {read_len := fin.read(mut buf_in)!input.src = buf_in.datainput.size = usize(read_len)input.pos = 0for input.pos < input.size {output.dst = buf_out.dataoutput.size = buf_out_sizeoutput.pos = 0ret := dctx.decompress_stream(output, input)!fout.write(buf_out[..output.pos])!last_ret = ret}if read_len < buf_in.len {break}}if last_ret != 0 {/* The last return value from DecompressStream did not end on a* frame, but we reached the end of the file! We assume this is an* error, and the input was truncated.*/return error('EOF before end of stream: ${last_ret}')}
}

将此函数添加到源代码,并在decompress_file函数中用如下语句调用代替原有解压缩部分代码。

    println("正在解压 ${input_file}...")start_time := time.now()decompress_file_fun(input_file, output_file)or {} //or {}必须,否则编译出错duration := time.since(start_time).seconds()

这样就可以解压缩完成了

v -prod vzstd2.v./vzstd2
ZSTD 压缩/解压工具
1. 压缩文件
2. 解压文件
3. 退出程序
请选择操作 (1-3): 2
请输入要解压的.zst文件路径: vzstd2.zst
请输入解压后文件保存路径: ccc.txt
正在解压 vzstd2.zst...
解压完成!
压缩文件: vzstd2.zst (88089043 字节)
解压文件: ccc.txt (106046919 字节)
耗时: 0.78
http://www.dtcms.com/a/450643.html

相关文章:

  • Windows环境下,源码启动+本地部署和启动开源项目Ragflow失败SRE模块
  • 高陵微网站建设北京seo网站结构优化
  • 【Leetcode hot 100】51.N皇后
  • 虚拟空间能建多个网站浙江省建设会计协会网站首页
  • 中英文网站域名的区别外贸网站开发哪家好
  • 网站加载不出来是什么原因建筑企业
  • 湖北省住房城乡建设厅网站查wordpress修改首页模板文件名
  • 个人做百度云下载网站吗c sql网站开发
  • 山东省建设公司网站怎样注册自己的微信小程序
  • 成都企业网站开发公司十堰网络销售
  • pve8.3安装win11
  • 网站设计的基本流程是什么什么行业 网站
  • AUTOSAR进阶图解==>AUTOSAR_TR_InteroperabilityOfAutosarTools
  • 网站建设与制十堰网站建设价格
  • PCIe协议之低功耗篇之 L0s 状态(一)
  • Uav toolbox使用
  • 网站架构企业收费标准网站优化 无需定金
  • 网站设计指南wordpress 添加
  • JavaScript 与 TypeScript 深度解析:特性、区别、联系与实践指南
  • 吴江区网站建设做汽车配件生意的网站
  • 做网站需要用什么技术软件维护有哪些内容
  • 10.6总结
  • 在哪里安装wordpress嘉兴seo网站排名
  • 电子商务网站建设与维护期末答案桂平百度seo
  • 关于网站开发与设计论文免费页面网站制作
  • LeetCode:95.编辑距离
  • 网站建设 跑业务永久免费自动建站系统
  • 个人网站设计策划在哪里可以接网站开发的外包
  • 如何建设物流网站聚名网域名怎么过户给公司
  • 【Misc】BUUCTF 第一页 wp