美文网首页
文件操作

文件操作

作者: 乔大叶_803e | 来源:发表于2020-03-28 15:12 被阅读0次

    文件

    文件是数据源,最主要的就是保存数据的功能

    文件在程序中是以流的形式进行操作的.

    文件流

    流:数据在数据源(文件)和程序(内存)之间经历的路径


    os.File 封装了所有文件相关操作,file是一个结构体

    在操作文件的时候,会经常使用os.File这个结构体


    常用文件操作的函数和方法

    os.open(name string)(*File err)  //代开文件
    
    关闭文件
    package main
    
    import "fmt"
    import "os"
    
    func main()  {
        //打开文件
        //概念说明:file的叫法
        //1 file 叫 file对象
        // 2 file 叫file 指针
        // 3 file  叫file文件句柄
        fiel , err := os.Open("/Users/qiao/Desktop/chongqing1_round1_train1_20191223/images/img_0000012.jpg")
        if err != nil{
            fmt.Println("open file err =",err)
        }
    
        //输入下文件,看看文件是什么
        fmt.Println("file=%v",fiel)
        //关闭文件
        err = fiel.Close()
        if err != nil{
            fmt.Println("close file err=",err)
        }
    
    }
    
    

    输出结果

    file=%v &{0xc000080120}
    
    

    发现文件就是个指针


    读文件操作实例

    读取文件内容并显示在终端(带缓冲的方式)

    代码实现:

    package main
    
    import (
        "bufio"
        "fmt"
        "io"
    )
    import "os"
    
    func main()  {
        file,err := os.Open()
        if err != nil{
            fmt.Println("open the file err=",err)
        }
    
        //当函数退出时,要及时关闭file
        defer file.Close() //要及时关闭file句柄 否则会有内存泄漏
    
        //创建一个reader  是带缓存的
        /*
        const (
            defaultBufSize = 4096  //默认缓存区为 4096
        )
        */
        reader := bufio.NewReader(file)
    
        for  {
            str,err := reader.ReadString('\n')  //读到一个换行接结束
            if err == io.EOF {  //io.eof  表示文件末尾
                break
            }
    
            fmt.Print(str)
        }
        fmt.Println("文件读取结束")
    }
    

    相关文章

      网友评论

          本文标题:文件操作

          本文链接:https://www.haomeiwen.com/subject/segjuhtx.html