最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時間:2020年12月22日 11:39:58   作者:robertkun  
這篇文章主要介紹了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個字節(jié)的大小并輸出

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)
 }
}

打?。?/p>

因為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)
 }
}

打?。?/p>

0 1

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。

相關文章

  • 盤點幾種Go語言開發(fā)的IDE

    盤點幾種Go語言開發(fā)的IDE

    Go語言作為一種新興的編程語言,近年來受到了越來越多的關注,它以其簡潔、高效和并發(fā)性能而聞名,被廣泛應用于各種軟件開發(fā)項目中,本文將介紹幾種常用的Go語言IDE,并對它們進行比較,幫助開發(fā)者根據自己的需求選擇合適的工具,需要的朋友可以參考下
    2023-11-11
  • 實用的Go語言開發(fā)工具及使用示例

    實用的Go語言開發(fā)工具及使用示例

    這篇文章主要為大家介紹了實用的Go語言開發(fā)工具及使用示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-06-06
  • Golang中channel使用的一些小技巧

    Golang中channel使用的一些小技巧

    這篇文章主要介紹了Golang中channel使用的一些小技巧,本文講解了關閉2次、讀取的時候channel提前關閉了、向已經關閉的channel寫數據等技巧及這實例代碼,需要的朋友可以參考下
    2015-07-07
  • 一文詳解Golang中字符串的常見錯誤

    一文詳解Golang中字符串的常見錯誤

    這篇文章主要來和大家深入討論一下Golang?中的字符串,并查看一些不同的場景,以避免常見錯誤,對大家掌握golang有一定的幫助,需要的可以了解下
    2023-10-10
  • 淺談Go數組比切片好在哪

    淺談Go數組比切片好在哪

    Go1.17 會正式支持切片轉換到數據,不再需要用以前那種騷辦法了,本文就談談Go數組比切片好在哪,感興趣的可以了解一下
    2021-09-09
  • IdeaGo啟動報錯Failed to create JVM的問題解析

    IdeaGo啟動報錯Failed to create JVM的問題解析

    這篇文章主要介紹了IdeaGo啟動報錯Failed to create JVM的問題,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-11-11
  • 利用Golang實現TCP連接的雙向拷貝詳解

    利用Golang實現TCP連接的雙向拷貝詳解

    公司中遇到了一個使用golang編寫的agent程序,所以這篇文章主要給大家介紹了關于利用Go如何實現TCP連接的雙向拷貝的相關資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考,下面隨著小編來一起看看吧。
    2017-09-09
  • 淺談golang package中init方法的多處定義及運行順序問題

    淺談golang package中init方法的多處定義及運行順序問題

    這篇文章主要介紹了淺談golang package中init方法的多處定義及運行順序問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-05-05
  • Go語言實現登錄驗證代碼案例

    Go語言實現登錄驗證代碼案例

    這篇文章主要介紹了Go語言實現登錄驗證代碼案例,代碼和圖文講解的很清晰,有感興趣的可以學習下
    2021-03-03
  • 關于golang test緩存問題

    關于golang test緩存問題

    這篇文章主要介紹了關于golang test緩存問題,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-09-09

最新評論

肇庆市| 平阳县| 工布江达县| 奉贤区| 八宿县| 饶平县| 新巴尔虎左旗| 赞皇县| 牟定县| 永年县| 乐至县| 顺昌县| 资源县| 河曲县| 泗阳县| 永仁县| 甘洛县| 红河县| 平原县| 华容县| 汾西县| 甘洛县| 贵阳市| 揭阳市| 阜南县| 平南县| 昌邑市| 社会| 柳林县| 江门市| 武邑县| 聂荣县| 惠水县| 沁水县| 京山县| 泾川县| 和林格尔县| 景宁| 吉水县| 华容县| 海门市|