Go语言之文件

 1 package main
 2 
 3 import (
 4     "fmt"
 5     "os"
 6 )
 7 
 8 func main() {
 9     filename := "./main.txt"
10     _, err := os.Stat(filename)
11     //判断文件是否存在如果不存在就创建文件
12     if os.IsNotExist(err) == true {
13         fmt.Println("文件不存在")
14         _, err = os.Create(filename)
15         if err != nil {
16             fmt.Printf("文件创建失败", err)
17             return
18         } else {
19             fmt.Println("文件创建成功")
20         }
21     }
22     //OpenFile是一个更一般性的文件打开函数,大多数调用者都应用Open或Create代替本函数。它会使用指定的选项(如O_RDONLY等)、
23     // 指定的模式(如0666等)打开指定名称的文件。
24     file, err := os.OpenFile(filename, os.O_RDWR, 0666)
25     if err != nil {
26         fmt.Println(err)
27         return
28     }
29     //关闭文件
30     defer file.Close()
31     //直接写入字符串
32     //_, err = file.WriteString("aaa")
33     //if err != nil {
34     //    fmt.Printf("文件写入失败,错误是:", err)
35     //}
36     //读取文件中的内容
37     var tmp = make([]byte, 128)
38     n, err := file.Read(tmp)
39     if err != nil {
40         fmt.Printf("读取失败,错误是:", err)
41     }
42     fmt.Println(string(tmp[:n]))
43     /*
44     可以使用ioutil进行对文件的整个读取和写入
45     content, err := ioutil.ReadFile("./main.go")
46     -------------------------------------------------------
47     str := "hello 沙河"
48     err := ioutil.WriteFile("./xx.txt", []byte(str), 0666)
49 
50     */
51 }