文件读取
- 文件的信息可以读取进一个`[]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()
}