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, "\n") 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)}