今日はファイル入出力。
前に書いたように、ファイル入出力にはファイルディスクリプタを使う。ファイルディスクリプタは、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!