zoukankan      html  css  js  c++  java
  • golang之文件操作

    文件在程序中是以流的形式来操作的。

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

    输入流:数据从数据源(文件)到程序(内存)的路径

    输出流:数据从程序(内存)到数据源(文件)的路径

    读文件方式:

      1.带缓冲区的方式,os.Open, file.Close, bufio.NewReader(), reader.ReadString函数和方法:

      

    func main() {
        file, err := os.Open("b.txt")
        if err != nil {
            fmt.Println("open file err=", err)
        }
    
        defer file.Close()
    
        reader := bufio.NewReader(file)
        for {
            str, err := reader.ReadString('
    ')
            fmt.Print(str)
            if err == io.EOF {
                break
            }
        }
    }

       2.使用ioutil一次将整个文件读入到内存中,这种方式适用于文件不大的情况。 相关的方法和函数(ioutil.ReadFile):

     

    func main() {
        content, err := ioutil.ReadFile("b.txt")
        if err != nil {
            fmt.Println("reard file err=", err)
        }
        fmt.Printf("%v", string(content))
    }

      

    写文件方式:

      1.使用缓存bufio.NewWriter()

    func main() {
        file, err := os.OpenFile("a.txt", os.O_WRONLY | os.O_CREATE, 0666)
        if err != nil {
            fmt.Println("open file err=", err)
            return
        }
    
        defer file.Close()
        str := "hello world
    "
        writer := bufio.NewWriter(file)
        for i := 0; i < 5; i++ {
            writer.WriteString(str)
        }
        writer.Flush()
    }

      2.从一个文件读取内容后写入到另一个文件:ioutil.WriteFile,   ioutil.ReadFile

    func main() {
        data, err := ioutil.ReadFile("a.txt")
        if err != nil {
            fmt.Println("read file is err=", err)
            return
        }
    
        err = ioutil.WriteFile("b.txt", data, 0666)
        if err != nil {
            fmt.Println("read file is err=", err)
        }
    }

     

    判断文件是否存在

    golang判断文件或文件夹是否存在的方法为使用os.Stat()函数返回的错误值进行判断:

      1)如果返回的错误为nil,说明文件或文件夹存在;

      2)如果返回的错误类型使用os.IsNotExits()判断为true,说明文件或文件夹不存在;

      3)如果返回的错误为其它类型,则不确定是否存在

    func PathExits(path string) (bool, error) {
        _, err := os.Stat(path)
        if err == nil {
            return true, nil
        }
        if os.IsNotExist(err) {
            return false, nil
        }
        return false, err
    }
    人生就是要不断折腾
  • 相关阅读:
    Key-Value Memory Network
    Deep Mask Memory Network with Semantic Dependency and Context Moment for Aspect Level Sentiment Clas
    Deep Memory Network在Aspect Based Sentiment方向上的应用
    Deep Memory Network 深度记忆网络
    Self Attention 自注意力机制
    Attention基本公式及其变种
    *端策略优化算法(PPO)
    Policy Gradient 算法
    一本通 农场派对
    A
  • 原文地址:https://www.cnblogs.com/xiangxiaolin/p/12219512.html
Copyright © 2011-2022 走看看