
Golangにはtempとしてのファイル操作関数があるんですね。便利ですね。
あまり使う用途ないかもしれませんが、パッと見関数で何やってるかわかって可読性がちょっとよくなるかもしれません。
サンプルコード
package main
import (
"io/ioutil"
"os"
"log"
"fmt"
)
func main() {
temp_file, err := ioutil.TempFile(os.TempDir(), "tempfile-test-")
if err != nil {
fmt.Println("Error, can not create temp file.")
log.Fatal(err)
}
fmt.Println("File : " + temp_file.Name())
_, err = temp_file.Write([]byte("This is temp file.\n"))
if err != nil {
fmt.Println("Error, can not write on temp file.")
log.Fatal(err)
}
//defer os.Remove(temp_file.Name())
}
File : /tmp/tempfile-test-158369842
ポイント
ioutil.TempFile
https://golang.org/pkg/io/ioutil/#TempFile
func TempFile(dir, pattern string) (f *os.File, err error)
dir ディレクトリに、patternから始まるランダムの数値を付加したファイルを作ります。
patternをtempfile-test-としてたのでtempfile-test-158369842となりました。
ioutil.TempDir
https://golang.org/pkg/io/ioutil/#TempDir
func TempDir(dir, prefix string) (name string, err error)
ちなみにTempDirはtempディレクトリを作ります。