Go执行输出文件写操作

go执行输出文件写操作

  • go创建文件写入字符串

    1
    2
    3
    4
    5
    6
    package main
    import "os"
    func main() {
    f, _ := os.Create("./outputFile.txt")
    f.Write([]byte("测试输出写入文本"))
    }
  • 其他方式写入文件

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    package main

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

    func check(e error) {
    if e != nil {
    panic(e)
    }
    }

    /**
    * 判断文件是否存在 存在返回 true 不存在返回false
    */
    func checkFileIsExist(filename string) (bool) {
    var exist = true;
    if _, err := os.Stat(filename); os.IsNotExist(err) {
    exist = false;
    }
    return exist;
    }

    func main() {
    var wireteString = "测试"
    var filename = "./output1.txt";
    var f *os.File
    var err1 error;

    //使用 io.WriteString 写入文件
    if checkFileIsExist(filename) { //如果文件存在
    f, err1 = os.OpenFile(filename, os.O_APPEND, 0666) //打开文件
    fmt.Println("文件存在");
    }else {
    f, err1 = os.Create(filename) //创建文件
    fmt.Println("文件不存在");
    }
    check(err1)
    n, err1 := io.WriteString(f, wireteString) //写入文件(字符串)
    check(err1)
    fmt.Printf("写入 %d 个字节n", n);



    //使用 ioutil.WriteFile 写入文件
    var d1 = []byte(wireteString);
    err2 := ioutil.WriteFile("./output2.txt", d1, 0666) //写入文件(字节数组)
    check(err2)



    //使用 File(Write,WriteString) 写入文件
    f, err3 := os.Create("./output3.txt") //创建文件
    check(err3)
    defer f.Close()
    n2, err3 := f.Write(d1) //写入文件(字节数组)
    check(err3)
    fmt.Printf("写入 %d 个字节n", n2)
    n3, err3 := f.WriteString("writesn") //写入文件(字节数组)
    fmt.Printf("写入 %d 个字节n", n3)
    f.Sync()




    //使用 bufio.NewWriter 写入文件
    w := bufio.NewWriter(f) //创建新的 Writer 对象
    n4, err3 := w.WriteString("bufferedn")
    fmt.Printf("写入 %d 个字节n", n4)
    w.Flush()
    f.Close()
    }