1 package main
2
3 import (
4 "fmt"
5 "io/ioutil"
6 "os"
7 )
8
9 func main() {
10 /*
11 ioutil包:
12 ReadFile()
13 WriteFile()
14 ReadDir()
15 ..
16 */
17
18 // 1.读取文件中的所有的数据
19 // fileName := "D:\\Go\\web2\\aa.txt"
20 // data, err := ioutil.ReadFile(fileName)
21 // fmt.Println(err)
22 // fmt.Println(data) // [97 97 13 ...
23 // fmt.Println(string(data))
24
25 // 2.写入数据
26 // fileName := "D:\\Go\\web2\\bb.txt"
27 // s1 := "床前明月光,地上鞋三双"
28 // err := ioutil.WriteFile(fileName, []byte(s1), os.ModePerm) // 重写覆盖所有
29 // fmt.Println(err)
30
31 // 3.ReadAll()
32 // s2 := "王二狗和李小花是两个好朋友,Ruby就是我,也是他们的朋友"
33 // r1 := strings.NewReader(s2)
34 // data, err := ioutil.ReadAll(r1)
35 // fmt.Println(err)
36 // fmt.Println(data) // [231 142 139
37 // fmt.Println(string(data))
38
39 // 4.ReadDir(),读取一个目录下的子内容:子文件和子目录,但是只能读取一层
40 // dirName := "D:\\Go\\web2"
41 // fileInfos, err := ioutil.ReadDir(dirName)
42 // if err != nil {
43 // fmt.Println(err)
44 // return
45 // }
46 // fmt.Println(len(fileInfos))
47 // for i := 0; i < len(fileInfos); i++ {
48 // fmt.Printf("%#v\n", fileInfos[i])
49 // /*
50 // &os.fileStat{
51 // name:"aa.txt",
52 // FileAttributes:0x20,
53 // CreationTime:syscall.Filetime{
54 // LowDateTime:0x9da022ec,
55 // HighDateTime:0x1d7e81b
56 // },
57 // LastAccessTime:syscall.Filetime{
58 // LowDateTime:0x9da022ec,
59 // HighDateTime:0x1d7e81b
60 // },
61 // LastWriteTime:syscall.Filetime{
62 // LowDateTime:0xe680f126,
63 // HighDateTime:0x1d7ec06
64 // },
65 // FileSizeHigh:0x0,
66 // FileSizeLow:0x1a,
67 // Reserved0:0x0,
68 // filetype:0x0,
69 // Mutex:sync.Mutex{
70 // state:0,
71 // sema:0x0
72 // },
73 // path:"D:\\Go\\web2",
74 // vol:0x0,
75 // idxhi:0x0,
76 // idxlo:0x0,
77 // appendNameToPath:true
78 // }
79 // */
80 // fmt.Printf("第 %d 个:名称:%s,是否是目录:%t\n", i, fileInfos[i].Name(), fileInfos[i].IsDir())
81 // /*
82 // 6
83 // 第 0 个:名称:aa.txt,是否是目录:false
84 // 第 1 个:名称:bb.txt,是否是目录:false
85 // 第 2 个:名称:demo.go,是否是目录:false
86 // 第 3 个:名称:dir1,是否是目录:true
87 // 第 4 个:名称:test.png,是否是目录:false
88 // 第 5 个:名称:user.db,是否是目录:false
89 // */
90 // }
91
92 // 5.临时目录和临时文件
93 dir, err := ioutil.TempDir("D:\\Go\\web2\\dir1", "Test") // 创建临时目录 Test
94 if err != nil {
95 fmt.Println(err)
96 return
97 }
98 defer os.Remove(dir)
99 fmt.Println(dir) // D:\Go\web2\dir1\Test1160668805
100
101 file, err := ioutil.TempFile(dir, "text.txt") // 创建临时文件
102 if err != nil {
103 fmt.Println(err)
104 return
105 }
106 defer os.Remove(file.Name())
107 fmt.Println(file.Name())
108
109 }