package main
import (
"bufio"
"encoding/csv"
"fmt"
"io"
"log"
"os"
)
func main() {
data, err := os.Open("cc.csv")
defer data.Close()
if err != nil {
log.Fatal(err)
}
s := bufio.NewScanner(data)
for s.Scan() {
fmt.Println(s.Text())
if err := s.Err(); err != nil {
panic(err)
}
}
// Is it a proper way?
data.Seek(0, 0)
r := csv.NewReader(data)
for {
if record, err := r.Read(); err == io.EOF {
break
} else if err != nil {
log.Fatal(err)
} else {
fmt.Println(record)
}
}
}
Ich benutze zwei Leser hier, um aus einer CSV-Datei zu lesen. Zum Zurückspulen einer Datei verwende ich data.Seek(0, 0)
ist es ein guter Weg? Oder es ist besser, die Datei zu schließen und vor dem zweiten Lesen wieder zu öffnen.Golang, eine richtige Möglichkeit zum Zurückspulen von Dateizeiger
Ist es auch richtig *File
als io.Reader
zu verwenden? Oder ist es besser r := ioutil.NewReader(data)