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)

    }

  • 相关阅读:
    魔法阵
    求和
    罗马数字
    「NOIP2005P」循环
    【Windows批处理III】实现删除含自定字符串的文件和文件夹(搜索子目录)
    扩展欧几里得算法
    埃氏筛法(素数筛)
    python学习之argparse模块
    51Nod1364 最大字典序排列
    51Nod1537 分解
  • 原文地址:https://www.cnblogs.com/zhangym/p/6233637.html
Copyright © 2011-2022 走看看