一、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("文件删除失败!")
}
}
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。