我是golang的新手,我遇到问题需要了解io.Pipe与node.js Pipe类似吗?我应该如何使用它?是否可以将它与1个读取文件和写入文件一起使用?
先谢谢你们。
答案 0 :(得分:3)
不,它们不完全相似。 io.Copy(dat io.Writer, src io.Reader)
足以读取和写入文件,例如
input := bufio.NewReader(os.Stdin)
output := bufio.NewWriter(os.Stdout) // buffer output like C stdlib
io.Copy(output, input) // copy entire file
output.Flush()
io.Pipe() (*PipeReader, *PipeWriter)
会在你没有它们的情况下为你制作管道读者和作家,但代码期望它们,就像这样
type id struct{
name string
age int
}
payload:=id{"John", 25}
requestBody, jsonPayload := io.Pipe()
request:=http.NewRequest("POST". "http://www.example.com", requestBody) //NewRequest expect io.Reader
encoder:=json.NewEncoder(jsonPayload) //NewEncoder expect io.Writer
err:=encoder.Encode(payload)
response, err:=client.Do(request)