一つの方法は、使用しています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))
ラインを読むための別の方法は、あなたがリーダーを使用し、その後
_, err = fd.Seek(64, 0) // Set the current position for the fd
if err != nil { // error handler
log.Println(err)
return
}
のように特定のバイトにジャンプするfd.Seek(64,0)
を使用することができ行を読んでください。
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
ええ..私はそれを避けようとしていた..しかし、私はthats唯一のオプションだと思います。ありがとう! –