草庐IT

stdin_reader

全部标签

go - “r.(flate.Reader)”在golang的zlib/reader.go文件中是什么意思?

我在golang的zlib/reader.go文件中找到了很多像r.(flate.Reader)这样的代码片段。这是什么意思?https://golang.org/src/compress/zlib/reader.gofunc(z*reader)Reset(rio.Reader,dict[]byte)error{iffr,ok:=r.(flate.Reader);ok{z.r=fr}else{z.r=bufio.NewReader(r)}//morecodeomitted...}附言io和flate的源代码。io:https://golang.org/src/io/io.goFlate

Go - 如何增加最大 Stdin 输入长度?

在Go中从标准输入读取时允许超过1024个字符的推荐方法是什么?例如,这段使用bufio.Scanner的代码的最大输入长度为1024。packagemainimport("bufio""fmt""os")funcmain(){scanner:=bufio.NewScanner(os.Stdin)scanner.Scan()input:=scanner.Text()fmt.Println(input)}在一些建议的答案后更新...抱歉,伙计们-我一定还是做错了什么,或者说错了问题。我尝试了这两个建议,但仍然看到同样的问题。下面是代码的更新版本。症状是扫描仪在第1024个字符后不接受输入

go - 在 Golang 中遇到 gzip.Reader 问题

为什么这行不通?(抱歉,由于某种原因我无法在GoPlayground上获得分享按钮)。packagemainimport("bytes""compress/gzip""fmt""io")funcmain(){//ENCODEdata:=[]byte{1,2,3,4,5,6,7}bb0:=bytes.NewBuffer(data)byts:=bb0.Bytes()fmt.Printf("data=%x\n",data)fmt.Printf("bytebufferbb0contains=%x\n",byts)bb1:=new(bytes.Buffer)w:=gzip.NewWriter(b

go - 缓冲区问题不能在 http.NewRequest golang 的参数中使用 <type> 作为 io.Reader 类型

我在golangbody参数中的http.NewRequest中传递字符串时遇到问题。我得到的错误是:cannotusereq.Body(typestring)astypeio.Readerinargumenttohttp.NewRequest:stringdoesnotimplementio.Reader(missingReadmethod)同样,还有其他用例需要Buffer作为输入,而不是特定类型或它的数组。例如,当需要的输入是缓冲区时,byte[]。错误是什么意思,解决它的方法是什么,以及理解golang试图强制执行的内容。编辑:这是我遇到问题的行,没有找到任何引用。http.N

go - Golang如何实现stdin/stdout/stderr

我做了一个能够解析命令行输入的小程序。它通过std.in运行良好。但是,当我查阅官方文档进一步学习时,我发现对我来说太多了。var(Stdin=NewFile(uintptr(syscall.Stdin),"/dev/stdin"))我分别看了funcNewFile、typeuintpty、Packagesyscall的文档,但没能完整理解。另外,我也不知道/dev/stdin的含义。除了go,我从未学过其他静态编程语言。我如何实现stdin的魔力? 最佳答案 在syscall包中,Stdin只是数字0:var(Stdin=0Std

go - 在 golang 中从 stdin 读取输入

我有这个代码:funcreadTwoLines(){reader:=bufio.NewReader(os.Stdin)line,_:=reader.ReadString('\n')fmt.Println(line)line,_=reader.ReadString('\n')fmt.Println(line)}对于输入:hellobye输出是:hellobye一切正常。但是现在,如果我每行创建一个阅读器:funcreadTwoLines(){line,_:=bufio.NewReader(os.Stdin).ReadString('\n')fmt.Println(line)line,er

go - 如何返回一个空的 io.Reader?

我有一个返回io.Reader的函数:funcgetData(bucketstring,keystring)(io.Reader,error){svc:=s3.New(cfg)req:=svc.GetObjectRequest(&s3.GetObjectInput{Bucket:aws.String(bucket),Key:aws.String(key),})res,err:=req.Send()iferr!=nil{//Howtoreturnaemptyio.Readerhere?returnbytes.NewReader([]byte),err}returnres.Body,nil

json - 如何从 stdin 中解析一个无限的 json 数组?

我正在尝试为i3status编写一个小的替代品,这是一个与符合this的i3bar通信的小程序。协议(protocol)。它们通过标准输入和标准输出交换消息。双向的流都是一个无限大的json对象数组。从i3bar到i3status(我想替换)的流的开头如下所示:[{"name":"some_name_1","instance":"some_inst_1","button":1,"x":213,"y":35},{"name":"some_name_1","instance":"some_inst_2","button":2,"x":687,"y":354},{"name":"some_n

memory - 声明非常大的数组并迭代 stdin 时内存持续增加

以下代码声明了两个数组,然后遍历stdin(只是盲目地遍历文件-不与数组交互)。这导致内存不断增加。但是,如果我只声明两个数组并休眠-内存不会增加。同样,如果我只是迭代stdin-内存不会增加。但加起来(除了分配给数组的内存)还有一个持续的增长。我通过使用top工具查看RES内存来测量这一点。我把funcdoSomething()中的前几行注释掉了,说明注释的时候没有内存增加。取消注释行并运行将导致增加。NOTE:Thiswasrunongo1.4.2,1.5.3and1.6NOTE:Youwillneedtorecreatethisonamachinewithatleast16GBR

go - golang 1.7.3 中 gzip Reader 的行为变化(与 1.6.3 相比)

我有一个程序可以从网络连接读取gzip压缩的json数据包。发送方在发送gzip数据包后没有关闭连接。在go1.6.3中,这完美地工作,即gzip数据包在接收到gzip结束序列后被解码,但在go1.7.3中,读取器阻塞,因为没有io.EOF.下面是一个使用管道模拟网络连接的例子(注意writer保持打开状态是为了模拟打开的连接):packagemainimport("fmt""encoding/json""compress/gzip""io""runtime")typeTestJSONstruct{TestStringstring`json:"test"`}funcmain(){fmt