背景
下記のUdemy講座で、Goでのファイル操作について学びましたが、その中でos.SEEK_END
が非推奨であることを知りました。
Go 1.9以降では、osパッケージのシーク定数(os.SEEK_SET
、os.SEEK_CUR
、os.SEEK_END
)の代わりに、ioパッケージのio.SeekStart
、io.SeekCurrent
、io.SeekEnd
を使うのが推奨されているぽいです。
変更点
元のコード
package main
import (
"os"
)
func main() {
// ファイル操作
// -- Create --
f, _ := os.Create("foo.txt")
f.Write([]byte("Hello\n"))
f.WriteAt([]byte("Golang"), 6)
// ファイルの末尾にオフセットを移動
f.Seek(0, os.SEEK_END)
f.WriteString("Yaah")
}
修正コード
os.SEEK_END
の代わりにio.SeekEnd
を使用しました。
package main
import (
"os"
"io"
)
func main() {
// ファイル操作
// -- Create --
f, _ := os.Create("foo.txt")
f.Write([]byte("Hello\n"))
f.WriteAt([]byte("Golang"), 6)
// ファイルの末尾にオフセットを移動
f.Seek(0, io.SeekEnd)
f.WriteString("Yaah")
}
参考