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)
}
           
           
          