文件

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))
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容