一、go检查文件是否存在

func TestStat(t *testing.T) {
    f, err := os.Stat("hi.txt")
    if errors.Is(err, os.ErrNotExist) {
        t.Log("文件不存在")
    } else {
        t.Log(f)
    }
}

二、go创建文件

func TestCreate(t *testing.T) {
    f, err := os.Create("hi.txt")
    defer f.Close()
    if err != nil {
        t.Fatal(err)
    }
    t.Log(f)
}

三、go打开一个文件

1.只读

func TestOpen(t *testing.T) {
    f, err := os.Open("hi.txt")
    defer f.Close()
    if err != nil {
        t.Fatal(err)
    }
    t.Log(f.Name())
}

三.写入

1. 追加写入

func TestOpenFile(t *testing.T) {
    f, err := os.OpenFile("hi.txt", os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0644)
    if err != nil {
        t.Fatal(err)
    }
    defer f.Close()

    if _, err2 := f.WriteString("hello world"); err2 != nil {
        t.Fatal(err2)
    }
}

我们打开一下hi.txt会发现,写入了内容。

➜  file git:(master) ✗ cat hi.txt 
hello world

2.覆盖写入

func TestWrite(t *testing.T) {
    err := ioutil.WriteFile("hi.txt", []byte("new file"), 0644)
    if err != nil {
        t.Fatal(err)
    }
    fmt.Println("done")
}

每次执行,都会清除旧内容,写入内容。

四、读取文件

1、将整个文件读入内存中

//将文件整个读入内存
func TestRead(t *testing.T) {
    file, err := os.Open("hi.txt")
    if err != nil {
        panic(err)
    }
    defer file.Close()
    content, err := ioutil.ReadAll(file)
    t.Log(string(content))
}

或者

//将文件整个读入内存
func TestRead2(t *testing.T) {
    content, err := ioutil.ReadFile("hi.txt")
    if err != nil {
        panic(err)
    }
    t.Log(string(content))
}

五、删除文件

func TestDelete(t *testing.T) {
    err := os.Remove("hi.txt")
    if err == nil {
        fmt.Println("文件删除成功。。。")
    } else {
        fmt.Println("文件删除失败!")
    }
}

谢谢您的观看,欢迎关注我的公众号。

image.png


海生
104 声望32 粉丝

与黑夜里,追求那一抹萤火。