go文件写入

package main

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

func main()  {
        /*
        模式
        os.O_WRONLY //只写
        os.O_CREATE //创建文件
        os.O_RDONLY //只读
        os.O_RDWR       //读写
        os.O_TRUNC      //清空
        os.O_APPEND //追加

        perm:文件权限 ,一个八进制数。
        r(读)04 ,w(写)02, x(执行)01
        */
        //方式一
        file ,err := os.OpenFile("./test.txt",os.O_CREATE|os.O_APPEND,0666)
        if err != nil {
                fmt.Println(err)
        }
        file.Write([]byte("22222222222222222222")) //写入字节切片数据
        file.WriteString("11111111111111\n") //直接写入字符串数据
        file.Close()
        //方式二(bufio)
        file ,err := os.OpenFile("./test.txt",os.O_CREATE|os.O_APPEND,0666)
        if err != nil {
                fmt.Println(err)
        }
        defer file.Close()
        writer := bufio.NewWriter(file)
        writer.WriteString("333333333333333\n") //先写入缓存
        writer.Flush() //将缓存中的内容写入文件
        //方式二(ioutil)
        err := ioutil.WriteFile("./test.txt",[]byte("44444444444"),0666) //直接覆盖原来的内容
        if  err != nil {
                fmt.Println(err)
        }
}