背景
下記の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")
}
参考