的一種方法是使用bufio
pkg。這方面的一個例子是:
fd, err := os.Open("your_file.csv")
if err != nil { //error handler
log.Println(err)
return
}
reader := bufio.NewReader(fd) // creates a new reader
_, err = reader.Discard(64) // discard the following 64 bytes
if err != nil { // error handler
log.Println(err)
return
}
// use isPrefix if is needed, this example doesn't use it
// read line until a new line is found
line, _, err := reader.ReadLine()
if err != nil { // error handler
log.Println(err)
return
}
fmt.Println(string(line))
另一種方法來讀取行了,你可以使用fd.Seek(64,0)
跳轉到一個特定字節像
_, err = fd.Seek(64, 0) // Set the current position for the fd
if err != nil { // error handler
log.Println(err)
return
}
而且以後使用閱讀器閱讀該行。
reader := bufio.NewReader(fd)
line, _, err := reader.ReadLine()
if err != nil {
log.Println(err)
return
}
fmt.Println(string(line))
我不得不退一步文件即時通訊目前在讀,所以我不能隨便丟棄接下來的n個字節。有時我必須跳回到文件的頂部。你可以放一個負數放棄嗎? –
不,但是如果你需要的話,你可以使用'file.seek()'並創建另一個'bufio.Reader'。 – Motakjuq
是的..我試圖避免這一點..但我想這是唯一的選擇。謝謝! –