go获取文件md5后接着读取file对象EOF的问题记录

这篇具有很好参考价值的文章主要介绍了go获取文件md5后接着读取file对象EOF的问题记录。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

背景

分析


背景

第一步:读取文件,获得file对象
第二步:获取文件md5
第三步:获取到md5后继续使用(读取)file对象,发现一次就读完了(EOF),但实际一次不可能读完

分析

代码如下:

    md5hash := md5.New()
    
    // md5hash可以作为io.Writer使用
    totalSize, err := io.Copy(md5hash, file)  // file 为*os.File类型,即读取文件后的文件对象
    if err != nil {
        return err
    }

    md5Str := fmt.Sprintf("%x", md5hash.Sum(nil))
    
    for {
        
        n, err := reader.Read(buf)
        // 读取完成
        if n == 0 && err == io.EOF {
            break 
        }
        
        // ...处理本次读取结果
    }

如上代码中,在获得该文件的md5后,file对象此时已指向文件末尾,因此接着读取必然是EOF直接结束。

此时需要重新回溯指针到文件开始位置,然后才能继续使用file读取完整数据。

即在获得md5之后、接着读取之前增加:

file.Seek(0, 0)


    
 文章来源地址https://www.toymoban.com/news/detail-803622.html

到了这里,关于go获取文件md5后接着读取file对象EOF的问题记录的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • APP备案,iOS签名文件MD5、公钥获取方法

    前言 2023年8月,国内开始要求应用市场上架的APP要备案,备案则需要提交安卓APP签名文件中的MD5、公钥等信息,如下图是某平台APP备案需要提交的信息。 获取MD5等信息 最省事方法 针对没有ide工具,没有从事过iOS开发,或想节省时间的朋友,建议通过我们开发的网页来获取

    2024年02月08日
    浏览(41)
  • 获取安卓签名文件的MD5值与SHA1码

    目录 前言 一、用命令行的方式仅能获取SH1、SHA256 ​编辑 二、用gradle的方式可以获取MD5值 1.打开Android Studio,点击右边的Gradle 2.点击大象,输入查询签名信息的命令 总结 公司App项目要备案,要搜集MD5值与SHA1码,用了以前的命令行方式只获取到SHA1,奇怪,网上学习了下,原来

    2024年02月16日
    浏览(56)
  • vue(前端):大文件分片上传(包括如何获取文件MD5、逻辑注释讲解)

    3.1 原生input标签实现上传 3.2 获取文件的MD5 3.3 上传文件 3.4 上传文件到后台

    2024年02月21日
    浏览(43)
  • 图像/短视频文件的MD5码的定义、作用以及获取方式

    目录 一、图像/短视频文件的MD5码定义: 二、MD5码的作用: 三、如何获取一个图像/短视频文件的MD5码:         MD5(Message-Digest Algorithm 5)是一种常用的哈希算法,用于计算文件的哈希值。哈希值是一个固定长度的字节序列,可以用于验证文件的完整性和唯一性。    

    2024年02月15日
    浏览(43)
  • APP备案,最新获取安卓签名文件中MD5等信息方法

    直接通过cmd执行命令 输入后回车会提示输入密码库口令,直接输入Keystore密码(输入过程中终端上不会显示,输完回车就行) 由于上述以前这种方式是可以打印出MD5,现在这种方式却没把MD5值打印出来,处理办法如下 直接在as中的Terminal工具在命令行中输入gradle命令: 1.导出

    2024年01月21日
    浏览(45)
  • Android创建签名文件,并获取签名文件MD5,SHA1,SHA256值

    一、创建Android签名文件         使用Android Studio开发工具,可视化窗口进行创建 第一步:点击AndroidStudio导航栏上的 Build→Generate Signed Bundle / APK 第二步:选择APK选项    第三步:创建签名文件 第四步:输入创建签名的文件的各内容信息 点击ok,即可完成签名的文件的创建

    2024年02月07日
    浏览(61)
  • shell脚本-批量获取目录下所有文件的md5值、大小、inode值

    MD5的全称是Message-Digest Algorithm 5,它一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整一致。MD5值等同于文件的ID,它的值是唯一的。 如果文件已被修改,其MD5值将发生变化。 运行结果: 文件储存在硬盘上,硬盘的

    2024年02月09日
    浏览(43)
  • MD5算法:利用python进行md5 hash值的获取

    MD5,即信息摘要算法,英文为MD5 Message-Digest Algorithm,是一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),也叫散列值,用于确保信息传输完整一致。 它可以从一个字符串或一个文件中按照一定的规则生成一个特殊的字符串,这个特殊的

    2024年02月07日
    浏览(37)
  • Android 应用获取签名MD5

     生成Android平台签名证书(.keystore)生成指南 根据uniapp官方的文档生成签名后,查看当前证书信息: 会输出以下格式信息: 会发现证书指纹下没有md5的信息 (可能是java的sdk版本原因导致的) 解决:输入以下命令可获取md5值 keytool -exportcert -keystore ync.keystore | openssl dgst -md5   温

    2024年02月12日
    浏览(34)
  • App备案——获取公钥和MD5签名

    阿里云App备案入口:https://beian.aliyun.com/pcContainer/myorder 当我们进行App备案时,需要填写App的公钥和MD5签名信息,公钥和 MD5 值可以通过安卓开发工具、Keytool、Jadx-GUI 等多种工具获取,本文以 jadx-gui 为例。 特征信息名词 说明 (安卓 Android)包名 APP 包名是一个应用程序的唯一

    2024年01月18日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包