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...