📜  如何在 Golang 中截断文件?

📅  最后修改于: 2021-10-25 03:04:17             🧑  作者: Mango

在 Go 语言中,您可以借助Truncate()函数来截断文件的大小。此函数用于将给定文件的大小截断为指定大小。

  • 如果给定文件是符号链接,则它会更改链接目标的大小。
  • 如果此方法抛出错误,则它将是 *PathError 类型。
  • 它是在 os 包下定义的,因此您必须在程序中导入 os 包才能访问 Truncate()函数。
  • 假设如果截断文件为 100 字节且原始文件小于 100 字节,则原始内容保留在开头,剩余空间用空字节填充。如果原始文件大于 100 字节,则截断后的文件在 100 字节后丢失内容。
  • 如果您在 Truncate()函数传递 0,那么您将获得一个空文件。

句法:

func Truncate(name string, size int64) error

示例 1:

// Golang program to illustrate how to
// truncate the size of the given file
package main
  
import (
    "log"
    "os"
)
  
var (
    myfile *os.FileInfo
    e      error
)
  
func main() {
  // Truncate the size of the 
  // given file to 200 bytes 
  // Using Truncate() function
    err := os.Truncate("gfg.txt", 200)
    if err != nil {
        log.Fatal(err)
  
    }
}

输出:

前:

在 golang 中截断文件之前

后:

在 golang 中截断文件后

示例 2:

// Golang program to illustrate how to
// truncate the size of the given file
package main
  
import (
    "log"
    "os"
)
  
var (
    myfile *os.FileInfo
    e      error
)
  
func main() {
  // Truncate the size of the given 
  // file to 0 bytes or empty file
  // Using Truncate() function
    err := os.Truncate("gfg.txt",0)
    if err != nil {
        log.Fatal(err)
  
    }
}

输出:

前:

在 golang 中截断文件之前

后:

在 golang 中截断文件后

示例 3:

// Golang program to illustrate how to 
// truncate the size of the given file
package main
  
import (
    "log"
    "os"
)
  
var (
    myfile *os.FileInfo
    e      error
)
  
func main() {
  // Truncate the size of the 
  // given file to 300 bytes 
  // Using Truncate() function
    err := os.Truncate("/Users/anki/Documents/new_folder/bingo.txt", 300)
    if err != nil {
        log.Fatal(err)
  
    }
}

输出:

前:

在 golang 中截断文件之前

后:
在 golang 中截断文件后