Golang 如何读写文件

Golang 如何读写文件

在Golang中,我们可以使用osio/ioutil两个包来进行文件的读写操作。其中,os包提供了更底层的系统调用方式,而io/ioutil则提供了更方便的高层次封装。

读取文件

使用os包

使用os包读取文件,我们需要先打开文件,然后再从文件中读取数据。以下是一个简单的例子:

package main

import (
    "fmt"
    "os"
)

func main() {
    file, err := os.Open("example.txt")
    if err != nil {
        fmt.Println("Error:", err)
        return
    }
    defer file.Close()

    data := make([]byte, 100)
    count, err := file.Read(data)
    if err != nil {
        fmt.Println("Error:", err)
        return
    }

    fmt.Printf("read %d bytes: %q\n", count, data[:count])
}

在上述代码中,我们打开了一个名为example.txt的文件,并使用file.Read()方法从文件中读取了100个字节的数据。读取的数据存储在data数组中,并返回读取的字节数。在打印读取的数据时,我们只打印了实际读取的字节数。

使用io/ioutil包

在使用io/ioutil包读取文件时,我们只需要一行代码即可:

package main

import (
    "fmt"
    "io/ioutil"
)

func main() {
    data, err := ioutil.ReadFile("example.txt")
    if err != nil {
        fmt.Println("Error:", err)
        return
    }

    fmt.Printf("read %d bytes: %q\n", len(data), data)
}

这里使用了ioutil.ReadFile()方法从文件中读取数据,读取的数据直接返回的是一个字节数组。

写入文件

使用os包

使用os包写入文件时,我们需要先创建文件,然后再向其中写入数据。以下是一个例子:

package main

import (
    "fmt"
    "os"
)

func main() {
    file, err := os.Create("example.txt")
    if err != nil {
        fmt.Println("Error:", err)
        return
    }

    defer file.Close()

    data := []byte("Hello, World!")
    count, err := file.Write(data)
    if err != nil {
        fmt.Println("Error:", err)
        return
    }

    fmt.Printf("write %d bytes\n", count)
}

在上述代码中,我们使用os.Create()方法创建了一个名为example.txt的文件,并使用file.Write()方法向其中写入了一个字符串。在打印写入的字节数时,我们只打印了实际写入的字节数。

使用io/ioutil包

在使用io/ioutil包写入文件时,我们只需要一行代码即可:

package main

import (
    "fmt"
    "io/ioutil"
)

func main() {
    data := []byte("Hello, World!")
    err := ioutil.WriteFile("example.txt", data, 0644)
    if err != nil {
        fmt.Println("Error:", err)
        return
    }

    fmt.Printf("write %d bytes\n", len(data))
}

这里使用了ioutil.WriteFile()方法将字符串写入文件中。

结论

无论是使用os包还是io/ioutil包进行文件读写,都是非常简单的。根据业务需求选择合适的方法即可。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程