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)

    }

  • 相关阅读:
    .NET实时2D渲染入门·动态时钟
    JAVA中抽象类的使用
    R语言中函数调试
    利用Bioperl的SeqIO模块解析fastq文件
    ASCII码表
    JAVA 中转义符的理解
    在线引物设计网站,老板推荐的,亲测好用
    列出一个买东西的好网站,值得推荐
    R语言集合操作
    R语言do.call 函数用法详解
  • 原文地址:https://www.cnblogs.com/zhangym/p/6233637.html
Copyright © 2011-2022 走看看