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

时间:2017-06-22 12:22:25

标签: logging go

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

1 个答案:

答案 0 :(得分: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
        }
    }
}