go - golang中bufio的修改

标签 go

我正在读取大文件并通过 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)

最佳答案

两个想法:

  1. 创建您自己的 Reader 实现,包装 bufio.Reader 并实现替换逻辑(您必须计算读取字节数)。

  2. 调用 io.Pipe,将返回的 PipeReader 传递给 NewRequest 并启动一个单独的 goroutine,该 goroutine 将从文件中读取数据,修改它并写入返回的 PipeWriter。

希望这是有道理的。

关于go - golang中bufio的修改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32089693/

相关文章:

协程行为

pointers - 删除指针值不会 panic

arrays - 为什么 Array 是 values 以及如何在 Golang 中实现?

go - mutex 的 golang 实现中是否存在竞争条件 m.state 是在没有原子函数的情况下读取的

go - 重启单元文件时的模式和 channel 应该是什么

string - 根据语言环境将货币/浮点字符串解析为浮点类型

go - 使用 go 模块将 retool 替换为 tools.go 用于多开发人员和 CI 环境

go - 改变单元测试的结构字段

mysql - 有没有办法创建单名数据库表?

json - Go 代码,用于从 Cloud Storage 加载 JSON 文件的 BigQuery 表;自动检测架构