首页 > 解决方案 > 如何读取文件的特定行数?

问题描述

我需要一次读取文件的特定行(例如,一次10行),下次读取文件时从上次读取位置的下一行(11)读取,并继续读取10行。

标签: go

解决方案


这是我写的函数,似乎有效

func ReadLine(inputFile io.ReadSeeker, startPos int64, lineNum int) (slice []string, lastPos int64, err error) {
    r := bufio.NewReader(inputFile)
    var line string
    inputFile.Seek(startPos, os.SEEK_SET)
    lastPos = startPos
    for i := 0; i < lineNum; i++ {
        line, err = r.ReadString('\n')
        if err != nil {
            break
        }
        lastPos += int64(len(line))
        slice = append(slice, line)
    }
    return
}

推荐阅读