Golang os.Truncate(), os.File.Sync() and os.File.Stat() functions example

package os

Golang os.Truncate(), os.File.Sync() and os.File.Stat() functions usage example

 package main

 import (
 "fmt"
 "os"
 )

 func main() {
 file, err := os.Open("test.txt")

 if err != nil {
 panic(err)
 }

 defer file.Close()

 fileInfo, err := file.Stat() // use Stat() to get file size

 if err != nil {
 panic(err)
 }

 fmt.Printf("File size before truncate %d \n", fileInfo.Size())

 os.Truncate(file.Name(), 1024)

 file.Sync() // optional - incase the file size is super big or power failure 

 newFileInfo, err := file.Stat()

 if err != nil {
 panic(err)
 }

 fmt.Printf("File size after truncate %d \n", newFileInfo.Size())

 }

Sample output :

File size before truncate 242731

File size after truncate 1024

References :

http://golang.org/pkg/os/#File.Stat

http://golang.org/pkg/os/#Truncate

http://golang.org/pkg/os/#File.Sync

Advertisement