📜  Golang中如何读写文件?(1)

📅  最后修改于: 2023-12-03 15:31:02.218000             🧑  作者: Mango

Golang中如何读写文件?

在Golang中要读写文件,需要使用标准库中的osioutil包。os包提供了File和FileInfo类型,而ioutil包提供了一组针对文件读写的常用函数。

读取文件

读取文件有两种方式,一种是使用ioutil.ReadFile函数,另一种是使用os.Openbufio.Scanner

使用ioutil.ReadFile函数

ioutil.ReadFile函数可以方便地读取整个文件的内容,返回一个字节数组。

package main

import (
    "fmt"
    "io/ioutil"
)

func main() {
    data, err := ioutil.ReadFile("test.txt")
    if err != nil {
        fmt.Println("读取文件失败:", err)
        return
    }
    fmt.Println(string(data))
}
使用os.Open和bufio.Scanner

另一种方式是使用os.Open打开文件,然后使用bufio.Scanner扫描文件中的内容。

package main

import (
    "bufio"
    "fmt"
    "os"
)

func main() {
    file, err := os.Open("test.txt")
    if err != nil {
        fmt.Println("打开文件失败:", err)
        return
    }
    defer file.Close()

    scanner := bufio.NewScanner(file)
    for scanner.Scan() {
        fmt.Println(scanner.Text())
    }
    if err := scanner.Err(); err != nil {
        fmt.Println("扫描文件失败:", err)
    }
}
写入文件

写入文件同样有两种方式,一种是使用ioutil.WriteFile函数,另一种是使用os.Createbufio.Writer

使用ioutil.WriteFile函数

ioutil.WriteFile函数可以方便地将字节数组写入到文件中。

package main

import (
    "fmt"
    "io/ioutil"
)

func main() {
    data := []byte("Hello, World!")
    if err := ioutil.WriteFile("test.txt", data, 0644); err != nil {
        fmt.Println("写入文件失败:", err)
    }
}
使用os.Create和bufio.Writer

另一种方式是使用os.Create创建文件,然后使用bufio.Writer将内容写入到文件中。

package main

import (
    "bufio"
    "fmt"
    "os"
)

func main() {
    file, err := os.Create("test.txt")
    if err != nil {
        fmt.Println("创建文件失败:", err)
        return
    }
    defer file.Close()

    writer := bufio.NewWriter(file)
    if _, err := writer.WriteString("Hello, World!\n"); err != nil {
        fmt.Println("写入文件失败:", err)
    }
    writer.Flush()
}
总结

以上介绍了在Golang中如何读写文件,我们可以根据需要选择不同的方式进行操作。使用ioutil函数可以方便地进行文件读写,而osbufio包则提供了更加灵活的操作方式。