zoukankan      html  css  js  c++  java
  • Golang对文件读写操作

    package main
    
    import (
        "bufio"
        "fmt"
        "io"
        "os"
    )
    
    //
    func WriteFile(path string) {
        //打开文件,新建文件
        f, err := os.Create(path) //传递文件路径
        if err != nil {           //有错误
            fmt.Println("err = ", err)
            return
        }
    
        //使用完毕,需要关闭文件
        defer f.Close()
    
        var buf string
    
        for i := 0; i < 5; i++ {
            //"i = 1
    ", 这个字符串存储在buf中
            buf = fmt.Sprintf("i = %d
    ", i)
            //fmt.Println("buf = ", buf)
    
            n, err := f.WriteString(buf)
            if err != nil {
                fmt.Println("err = ", err)
            }
            fmt.Println("n = ", n)
        }
    }
    
    //读文件内容方法
    func ReadFile(path string) {
        //打开文件
        f, err := os.Open(path)
        if err != nil {
            fmt.Println("err = ", err)
            return
        }
    
        //关闭文件
        defer f.Close()
    
        buf := make([]byte, 1024*2) //2k大小
    
        //n代表从文件读取内容的长度
        n, err1 := f.Read(buf)
        if err1 != nil && err1 != io.EOF { //文件出错,同时没有到结尾
            fmt.Println("err1 = ", err1)
            return
        }
    
        fmt.Println("buf = ", string(buf[:n]))
    
    }
    
    //每次读取一行
    func ReadFileLine(path string) {
        //打开文件
        f, err := os.Open(path)
        if err != nil {
            fmt.Println("err = ", err)
            return
        }
    
        //关闭文件
        defer f.Close()
    
        //新建一个缓冲区,把内容先放在缓冲区
        r := bufio.NewReader(f)
    
        for {
            //遇到'
    '结束读取, 但是'
    '也读取进入
            buf, err := r.ReadBytes('
    ')
            if err != nil {
                if err == io.EOF { //文件已经结束
                    break
                }
                fmt.Println("err = ", err)
            }
    
            fmt.Printf("buf = #%s#
    ", string(buf))
        }
    
    }
    
    func main() {
        path := "./demo.txt" //路径文件
    
        WriteFile(path)    //写内容
        ReadFile(path)     //读内容
        ReadFileLine(path) //每次读取一行
    }
  • 相关阅读:
    memcache安装 基于Red Hat 7.4
    LNMP源码编译
    LAMP源码编译
    Red Hat 7.4 安装laravel框架 基于xampp集成环境
    PHP 扩展开发检测清单(扩展开发必读)
    20 个 Laravel Eloquent 必备的实用技巧
    [项目推荐] Corcel 让你在 WordPress 中使用 Laravel
    Tumblr:我们是如何从 PHP 5 升级到 PHP 7 的
    PHP / Laravel 月刊 #23
    十个你需要在 PHP 7 中避免的坑
  • 原文地址:https://www.cnblogs.com/wt645631686/p/9650316.html
Copyright © 2011-2022 走看看