Go os标准库

文件读取

  • 文件的信息可以读取进一个`[]byte`切片,`Read`和`Write`方法从切片参数获取其内的字节数
// os标准库
func main() {
	file, err := os.Open("aa.txt")
	if err != nil {
		log.Fatal(err)
	}
    
    // 创建字节切片存放数据
	buf := make([]byte, 1000)
	ln, err := file.Read(buf)
	if err != nil {
		log.Fatal(err)
	}

    // 打印数据
	log.Println(string(buf[:ln]))
    file.Close()
}

 获取文件信息

  • `Stat`返回一个描述`name`指定的文件对象的`FileInfo`
func main() {
	f, _ := os.Stat("aa.txt")
	log.Println(f.Name(), f.IsDir(), f.ModTime())

}

 创建目录

  •  `Mkdir`使用指定的权限和名称创建一个目录
func main() {
	os.Mkdir("dir", 0777)  // 创建一个dir的文件夹,权限:0:八进制 7:rwx
}

 创建多层目录

  •  `MkdirAll`使用指定的权限和名称创建多层目录
func main() {
	os.MkdirAll("a/b/c/d", 0777)  // 创建一个dir的文件夹,权限:0:八进制 7:rwx
}

 创建文件

  • `Create`采用模式`0666`创建一个文件,如果文件存在则会置为空文件
func main() {
	os.Create("1.txt")  // 创建一个文件,权限:0666
}

目录遍历

遍历目录,返回一个有`n`个成员的`[]FileInfo`信息,包含文件和目录的切片信息

dir, _ := os.Open(`util`)   // 目录util
dirs, _ := dir.Readdir(-1)

for idx := range dirs {
    fmt.Println(dirs[idx].Name())
}

 

 读写示例1

 将切片容器中的数据写入到文件

func main() {
	file, err := os.Open("aa.txt")
	if err != nil {
		log.Fatal(err)
	}

	// 创建字节切片存放数据
	buf := make([]byte, 1000)
	ln, err := file.Read(buf)
	if err != nil {
		log.Fatal(err)
	}

	// 打印数据
	log.Println(string(buf[:ln]))

	// 创建一个文件
	fout, _ := os.Create("1.txt")
	fout.Write(buf[:ln]) // 写入数据

	file.Close()
	fout.Close()

}

 读写示例2

 将读取的数据全部写入到文件

func main() {
	file, err := os.Open("aa.txt")
	if err != nil {
		log.Fatal(err)
	}
	buf, _ := ioutil.ReadAll(file)  // 读取所有内容到buf

	// 创建一个文件
	fout, _ := os.Create("1.txt")
	fout.Write(buf) // 写入数据

	file.Close()
	fout.Close()
}

猜你喜欢

转载自blog.csdn.net/weixin_40123451/article/details/120825694