Go 两种读写文件的方式

Admin 2019-08-23 11:03:12 GoLang

1、使用 io/ioutil 库

package main

import (
    "fmt"
    "io/ioutil"
)

var (
   filename = "/tmp/tt.txt"
)

func main() {
    // 读取文件 返回[]byte 类型
    body, err := ioutil.ReadFile(filename)
    if err != nil {
        panic(err)
    }
    
    fmt.Println(string(body))
    
    // 写文件
    bodys := []byte("YwFuns oK!\n")
    err := ioutil.WriteFile(filename, bodys, 0644)
    if err != nil {
        panic(err)
    }
}

2、使用 os 库

package main

import (
    "fmt"
    "os"
)

var (
   filename = "/tmp/tt.txt"
)

func main() {
    // 读取文件, 
    body1, err := os.OpenFile(filename, os.O_RDWR|os.O_CREATE, 0755)
    if err != nil {
        panic(err)
    }
    defer body.Close()
    
    body2, err := os.Open(filename)
    if err != nil {
        panic(err)
    }
    defer body2.Close()
    
    content := make([]byte, 1024)
    r, err := body2.Read(content)
    if err != nil {
        panic(err)
    }
    
    // 写文件
    file, err := os.Create(filename)
    if err != nil {
       panic(err)
    }
    defer file.Close()
    
    w, err := file.Write([]byte("YwFuns\n"))
    if err != nil {
       panic(err)
    }
    fmt.Println(w)
    
    w2,err := file.WriteString("YwFuns")
    if err != nil {
       panic(err)
    }
    // file.Sync()
    fmt.Println(w2)
    
    w3 := bufio.NewWriter(file)
    w4, err := w3.WriteString("YwFuns")
    if err != nil {
       panic(err)
    }
    //w3.Flush()
    
    fmt.Println(w4)
}
相关文章
最新推荐