1、文件创建 os.Create
func createFile() {
//文件名
//返回值是文件指针 错误信息
//如果文件不存在 会创建新 存在 则清空源文件内容
// \:转义字符 G:/file=G:\\file
fp, err := os.Create("G:/file/dawn.txt")
if err != nil {
//1、路径不存在
// 2、文件权限
// 3、程序打开文件上限 65535
fmt.Println("文件创建失败")
return
}
//文件关闭
//如果打开文件不关闭,造成内存浪费 文件打开上限
defer fp.Close()
}
2、写入
- 1、字符串
fp.WriteString("hello \r\nworld")
- 2、字符切片
slice := []byte{'h', 'e'}
slice2 := []byte("fass")
fp.Write(slice)
fp.Write(slice2)
3、获取光标位置
//获取文件起始到结尾有多少字符
count, _ := fp.Seek(0, io.SeekEnd)
fp.WriteAt(slice, count)
打开方式: O_RDONLY, O_WRONLY, O_RDWR, O_APPEND
打开权限: 6、rw读写, 7、rwx读写执行
os.OpenFile("G:/file/dawn.txt",os.O_RDWR,6)
file, err := os.Open("G:/file/dawn.txt")//只读
3、读取
- 1、块读取
//块读取
buf := make([]byte, 4)
for {
n, err := file.Read(buf)
if err == io.EOF {
break
}
fmt.Print(string(buf[:n]))
}
- 2、行读取
//创建文件缓冲区
reader := bufio.NewReader(file)
b, _ := reader.ReadBytes('\n')
fmt.Println(string(b))