我通过http POST读取大文件并发送此文件。 我用bufio。
现在我想修改这个文件的第一行,怎么做?
f := bufio.NewReaderSize(os.Stdin, 65536)
bufPart, err := f.Peek(65536))
//how to modify bufPart(f) ?
...
req, err := http.NewRequest("POST", url, f)
答案 0 :(得分:2)
两个想法如何做到:
创建自己的Reader实现,包装bufio.Reader并实现替换逻辑(您必须计算读取字节数)。
调用io.Pipe,将返回的PipeReader传递给NewRequest并启动一个单独的goroutine,它将从文件读取数据,修改它并写入返回的PipeWriter。
希望这是有道理的。