はじめに
今回は os パッケージの WriteFile 関数を使ってみます。
検証環境
1
2
3
4
5
| $ uname -moi
x86_64 MacBookPro16,1 Darwin
$ go version
go version go1.16.3 darwin/amd64
|
インターフェイス
1
| func WriteFile(name string, data []byte, perm FileMode) error
|
説明
ファイル名を受け取り、そのファイルにデータを書き込みます。
もしファイルが存在しなかった場合には、事前に指定されたパーミッションのファイルを作成します。
正常終了時は error の戻り値が nil となります。
サンプルコード
main.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| package main
import (
"log"
"os"
)
func main() {
text := "Hello. Here is genzouw."
err := os.WriteFile("/tmp/test.txt", []byte(text), 0764)
if err != nil {
log.Fatal(err)
}
}
|
実行
1
2
3
4
5
6
7
8
9
10
| $ ls -l /tmp/test.txt
"/tmp/test.txt": No such file or directory (os error 2)
$ go run ./main.go
$ ls -l /tmp/test.txt
.rwxr--r-- 23 genzouw 4 5 16:52 /tmp/test.txt*
$ cat /tmp/test.txt
Hello. Here is genzouw.
|
ひとこと
ファイルの書き込みもできるようになりました。
文字列をそのまま書き込めず、一度 []byte のようにスライスに変換しないといけないのが若干面倒です。