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)
}
}
}
私はここで2人の読者を使ってcsvファイルを読む。 ファイルを巻き戻すには、data.Seek(0, 0)
を使用するのが良い方法ですか?または、ファイルを閉じて2回目の読み込みを行う前に再度開く方が良いでしょう。ゴールン、ファイルポインタを巻き戻す適切な方法
*File
をio.Reader
としても使用できますか?それともそれは最も簡単なあなたが示唆しただけのようFile.Seek(0, 0)
を使用して行われ、ファイルの先頭に探しているr := ioutil.NewReader(data)