我試圖讀取就是BEING柏油,流媒體,以標準輸入存檔,但我不知怎么讀遠遠在管道的數據超過焦油發送。我像這樣運行我的命令:tar -cf - somefolder | ./my-go-binary源代碼是這樣的:package mainimport ( "bufio" "io" "log" "os")// Read from standard inputfunc main() { reader := bufio.NewReader(os.Stdin) // Read all data from stdin, processing subsequent reads as chunks. parts := 0 for { parts++ data := make([]byte, 4<<20) // Read 4MB at a time _, err := reader.Read(data) if err == io.EOF { break } else if err != nil { log.Fatalf("Problems reading from input: %s", err) } } log.Printf("Total parts processed: %d\n", parts)}對于 100MB 的 tarred 文件夾,我得到 1468 個 4MB 的塊(即 6.15GB)!此外,data []byte數組有多大似乎并不重要:如果我將塊大小設置為 40MB,我仍然會得到大約 1400 個 40MB 的數據塊,這完全沒有意義。我需要做什么才能os.Stdin使用 Go 正確讀取數據嗎?
- 2 回答
- 0 關注
- 185 瀏覽
添加回答
舉報
0/150
提交
取消