• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    golang文件读取-按指定BUFF大小读取方式

    a.txt文件内容:

    ABCDEFGHI

    HELLO GOLANG

    package main
    import (
      "fmt"
      "os"
      "io"
    )
    func main() {
      fileName := "C:\\Robert\\日志分析\\tools_go\\vdn_sqlInterface\\a.txt"
      file, err := os.OpenFile(fileName, os.O_RDWR, 0666)
      if err != nil {
        fmt.Println("Open file error!", err)
        return
      }
      defer file.Close()
      stat, err := file.Stat()
      if err != nil {
        panic(err)
      }
      var size = stat.Size()
      fmt.Println("file size=", size)
      // define read block size = 2
      buf := make([]byte, 2)
      for {
        length, err := file.Read(buf)
        if err != nil {
          if err == io.EOF {
            break
          } else {
            fmt.Println("Read file error!", err)
            return
          }
        }
        fmt.Println(length, string(buf))
      }
      fmt.Println("File read ok!")
    }
    

    输出:

    每次读取2个字节的大小并输出

    file size= 23
    2 AB
    2 CD
    2 EF
    2 GH
    2 I
    2
    H
    2 EL
    2 LO
    2 G
    2 OL
    2 AN
    1 GN
    File read ok!
    

    补充:golang 数组append前后的地址变化

    我就废话不多说了,大家还是直接看代码吧~

    func main() {
     res := make([]int, 0)
     res = append(res, 1) //同函数内append前后地址不变
     for i, v := range res {
     println(i,v)
     }
    }
    

    打印:

    0 1

    func solve(res []int) {
     res = append(res, 1) //不在同一函数内append前后地址变
    }
     
    func main() {
     res := make([]int, 0)
     for i, v := range res {
     println(i,v)
     }
    }

    打印:

    因为append改变了原res的地址。所以改为:

    func solve(res []int) []int {
     return append(res, 1)
    }
     
    func main() {
     res := make([]int, 0)
     for i, v := range solve(res) {
     println(i,v)
     }
    }

    打印:

    0 1

    以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。如有错误或未考虑完全的地方,望不吝赐教。

    您可能感兴趣的文章:
    • golang逐行读取文件的操作
    • Golang 实现分片读取http超大文件流和并发控制
    • 浅谈Golang是如何读取文件内容的(7种)
    • golang 使用 viper 读取自定义配置文件
    • 如何利用Golang解析读取Mysql备份文件
    • golang读取文件的常用方法总结
    • Golang 实现超大文件读取的两种方法
    上一篇:golang 如何获取pem格式RSA公私钥长度
    下一篇:Golang 实现复制文件夹同时复制文件
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    golang文件读取-按指定BUFF大小读取方式 golang,文件,读取,按,指定,