Go Readers讀取資料流

2021-08-14 04:34:49 字數 1176 閱讀 4590

go語言的io包指定了io.reader介面。go語言標準庫包含了這個介面的許多實現,包括檔案、網路連線、壓縮、加密等等。

io.reader介面有乙個read方法:

func (t) read(b byte) (n int, err error)
在程式中,我們使用迴圈讀取資料流,直到error返回io.eof。

我們建立乙個每次以8個位元組讀取strings.reader的輸出的程式示例

package main

import(

"fmt"

"strings"

"io"

)func main()

}}

執行結果

n = 8 err = b = [72 101 108 108 111 44 32 82]

b[:n] = "hello, r"

n = 6 err = b = [101 97 100 101 114 33 32 82]

b[:n] = "eader!"

n = 0 err = eof b = [101 97 100 101 114 33 32 82]

b[:n] = ""

實現乙個reader型別,她不斷生成ascii字元'a'的流。

package main

import (

"fmt"

"io"

"os"

)type myreader struct{}

func validate(r io.reader)

}o += n

if err != nil

}if o == 0

fmt.println("ok!")

}//實現乙個 reader 型別,它不斷生成 ascii 字元 'a' 的流。

// todo: add a read(byte) (int, error) method to myreader.

func (mr myreader) read(b byte) (n int, err error)

return i, nil

}func main() )

}

github:

參考:

讀取海康工業相機(gige)資料流

呼叫海康工業相機 gige 讀取資料流並轉為opencv numpy 矩陣格式 參考官方開發案例grabimage.py,對資料流相機轉換 def work thread cam 0,pdata 0,ndatasize 0 stframeinfo mv frame out info ex memse...

TCP互動資料流 成塊資料流

tcp資料流分類 基於tcp的各類解決方案,可以根據資料吞吐量來大致分成兩大類 1 互動資料型別,例如telnet,ssh,這種型別的協議在大多數情況下只是做小流量的資料交換,比如說按一下鍵盤,回顯一些文字等等。2 資料成塊型別,例如ftp,這種型別的協議要求tcp能盡量的運載資料,把資料的吞吐量做...

採用不同方式讀取資料流

一般我們用行輸入操作符 讀取資料流,如果是標量上下文,就返回一行,如果是列表上下文,就返回資料流中所有的資料。總體而言,一次讀取一行的方式在時間和記憶體的開銷上效率最高的。my contents do 可以選用file slurp 模組替代我們完成。use file slurp my text re...