Goによるファイル処理方法
1. ファイル読み込み
package main
import (
"bufio"
"fmt"
"log"
"os"
)
func main() {
file, err := os.Open("sample.txt")
if err != nil {
log.Fatal(err)
}
defer file.Close()
scanner := bufio.NewScanner(file)
var strList []string
for scanner.Scan() {
strList = append(strList, scanner.Text())
}
fmt.Println(strList)
if err := scanner.Err(); err != nil {
log.Fatal(err)
}
}
os.Openでファイルを取得 -> bufio.NewScannerでファイルからスキャナーを生成 -> scanner.Scanで次のスキャンに移動 -> scanner.Textで中身を取得
2. ファイル書き込み
package main
import (
"fmt"
"log"
"os"
)
func main() {
// os.RDWR : open the file read-write.
// os.CREATE : create a new file if none exists.
// os.APPEND : append data to the file when writing.
// 0666 <- permission
file, err := os.OpenFile("testGo.txt", os.O_RDWR|os.O_CREATE|os.O_APPEND, 0666)
if err != nil {
log.Fatal(err)
}
defer file.Close()
fmt.Fprintln(file, "Add!")
}
os.OpenFileでファイルを取得(無ければ新規作成)-> fmt.Fprintlnでファイルに文字列を書き込み
参考
https://golang.org/pkg/os/
https://golang.org/pkg/bufio/