Go 言語の組み込みモジュールを触ってみる-ファイルの書き出し(os.WriteFile)

はじめに

今回は os パッケージの WriteFile 関数を使ってみます。

検証環境

$ uname -moi
x86_64 MacBookPro16,1 Darwin

$ go version
go version go1.16.3 darwin/amd64

インターフェイス

func WriteFile(name string, data []byte, perm FileMode) error

説明

ファイル名を受け取り、そのファイルにデータを書き込みます。
もしファイルが存在しなかった場合には、事前に指定されたパーミッションのファイルを作成します。

正常終了時は error の戻り値が nil となります。

サンプルコード

main.go

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)
    }
}

実行

$ 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 のようにスライスに変換しないといけないのが若干面倒です。

Posted by genzouw