一尘不染

从文本文件中删除前N个字节

go

是否有任何函数调用或简单的方法可以从golang的文本文件中删除前N个字节?假设文件有争议地由各种go例程附加,同时我想删除文件的前N个字节。


阅读 452

收藏
2020-07-02

共1个答案

一尘不染

您需要f.Seek跳过第一个字节并进行常规读取,请参见示例:

package main

import (
    "fmt"
    "io"
    "io/ioutil"
    "os"
)

func main() {
    f, err := os.Open(os.Args[1])            // open file from argument
    if err != nil {
        fmt.Println(err)
        return
    }

    var skipBytes int64 = 5                  // how many bytes to skip

    _, err = f.Seek(skipBytes, io.SeekStart) // skipping first bytes
    if err != nil {
        fmt.Println(err)
        return
    }

    buffer := make([]byte, 1024)               // allocating buffer to read
    for {
        n, err := f.Read(buffer)               // reading
        fmt.Print(string(buffer[:n]))          // writing to console
        if err != nil {
            fmt.Printf("Err: %v\n", err)
            return
        }
    }
}
2020-07-02