zoukankan      html  css  js  c++  java
  • seek指针大文件上传

    package main

    import (
        // "bufio"
        "fmt"
        "github.com/axgle/mahonia"
        // "log"
        "bytes"
        "os"
        "strings"
    )

    func main() {
        file, err := os.Open("hu.txt")
        defer file.Close()
        //得出文件大小
        files, _ := file.Stat()
        fileSize := files.Size()
        //7,815,168
        fmt.Println(fileSize, "fileSize")
        size := 1024 * 1024
        //循环次数
        num := (int(fileSize) + size - 1) / size
        //百分比进度条
        var list []string
        persentage := fmt.Sprintf("%.2f", 100/float64(num))
        fmt.Println(persentage, "persentage")
        fmt.Println(num)
        for i := 0; i < num; i++ {
            fmt.Println(i)
            buffer := make([]byte, 1024*1024)
            _, err = file.Read(buffer)
            if err != nil {
                fmt.Println(err)
                return
            }
            decoder := mahonia.NewDecoder("gb18030")
            if decoder == nil {
                fmt.Println("the code is not exist: ", err.Error())
                return
            }
            decodelist := decoder.ConvertString(string(buffer))
            liststring := strings.Split(decodelist, " ")
            length := len(liststring)
            ju := []byte(liststring[length-1])
            count := bytes.Count(ju, nil)

            list = liststring[:length-1]
            newposition, _ := file.Seek(-int64(count), 1)
            fmt.Println(newposition)
        }
        fmt.Println(list)

    }

  • 相关阅读:
    UE4物理笔记
    lambda+mutable配合move实现单函数多程序域
    UE导航系统详
    cpp智能指针
    [转载]新手应该如何学习网站分析
    webpack 单独打包指定JS文件
    vue-cli axios ie9 问题
    [分享] 通过修改CSS自定义chrome滚动条样式
    日期格式化转换方法
    vue 路劲
  • 原文地址:https://www.cnblogs.com/zhangym/p/6233637.html
Copyright © 2011-2022 走看看