Go language practice: several methods to clear file contents

PHPz
Release: 2024-04-03 21:48:02
Original
762 people have browsed it

Go language has the following methods to clear file contents: Use the ioutil.Truncate function to truncate the file. Use the os.Truncate function to directly operate the file descriptor. Use the ftruncate system call to truncate the file directly.

Go language practice: several methods to clear file contents

Go language practice: Several methods of clearing file contents

Clearing file contents is a common operation in Go language. There are several ways to do this.

Use the ioutil.Truncate function

ioutil.Truncate function to truncate the file to the specified size. If the specified size is 0, the file is cleared.

package main

import (
    "fmt"
    "io/ioutil"
    "os"
)

func main() {
    f, err := os.OpenFile("test.txt", os.O_RDWR, 0644)
    if err != nil {
        fmt.Println(err)
        return
    }

    err = ioutil.Truncate("test.txt", 0)
    if err != nil {
        fmt.Println(err)
        return
    }

    fmt.Println("File emptied successfully.")
}
Copy after login

Use os.Truncate function

os.Truncate function with ioutil.Truncate Similar, but it operates directly on file descriptors.

package main

import (
    "fmt"
    "os"
)

func main() {
    f, err := os.OpenFile("test.txt", os.O_RDWR, 0644)
    if err != nil {
        fmt.Println(err)
        return
    }

    err = os.Truncate("test.txt", 0)
    if err != nil {
        fmt.Println(err)
        return
    }

    fmt.Println("File emptied successfully.")
}
Copy after login

Use ftruncate system call

ftruncate system call to truncate the file directly.

package main

import (
    "fmt"
    "os"
    "syscall"
)

func main() {
    f, err := os.OpenFile("test.txt", os.O_RDWR, 0644)
    if err != nil {
        fmt.Println(err)
        return
    }

    err = syscall.Ftruncate(int(f.Fd()), 0)
    if err != nil {
        fmt.Println(err)
        return
    }

    fmt.Println("File emptied successfully.")
}
Copy after login

Practical case

In the following practical case, we use the ioutil.Truncate function to clear a file:

package main

import (
    "fmt"
    "io/ioutil"
    "os"
)

func main() {
    // 打开一个现有文件
    f, err := os.OpenFile("test.txt", os.O_RDWR, 0644)
    if err != nil {
        fmt.Println(err)
        return
    }

    // 使用 ioutil.Truncate 清空文件
    err = ioutil.Truncate("test.txt", 0)
    if err != nil {
        fmt.Println(err)
        return
    }

    // 检查文件是否已清空
    fi, err := f.Stat()
    if err != nil {
        fmt.Println(err)
        return
    }

    if fi.Size() == 0 {
        fmt.Println("File emptied successfully.")
    } else {
        fmt.Println("File not emptied.")
    }
}
Copy after login

The above is the detailed content of Go language practice: several methods to clear file contents. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!