今日はファイル入出力。
前に書いたように、ファイル入出力にはファイルディスクリプタを使う。ファイルディスクリプタは、os
パッケージの Open
関数で取得する。取得したファイルディスクリプタで、ファイルからの入力には Read
関数、出力には Write
関数を使い、終わったら Close
する。まあ、普通の手順だよな。
以下、サンプル。testin.txt ファイルから読み込んだ内容を testout.txt ファイルに書き込んでいる。
package main import ( "os" "fmt" ) func main() { input, err := os.Open("testin.txt") if err != nil { fmt.Fprintln(os.Stderr, err) os.Exit(1) } output, _ := os.Create("testout.txt") buff := make([]byte, 256) for { c, _ := input.Read(buff) if c == 0 { break } output.Write(buff[:c]) } input.Close() output.Close() }
^o^ > cat testin.txt Hello, Golang! ^o^ > go run fileio.go ^o^ > cat testout.txt Hello, Golang!