假设以下示例:
func Execute(r io.Reader) {
// do soemthing
}
func BatchFromCSV(cr csv.Reader, batchSize int) {
n := 0
for {
r, err := cr.Read()
if err != nil {
if err != io.EOF {
panic(err)
}
break
}
n = n + 1
// Execute() when batchSize == n
}
}
有没有办法分割传入的阅读器而不创建某种缓冲区,然后使用bytes / string.NewReader()?这是ReadWriter的地方吗?如果是这样,我如何实现readWriter?
答案 0 :(得分:-1)
如果csv文件适合内存,只需调用ReadAll()
,然后按照您认为合适的方式拆分记录片段。
如果您不想一次使用整个文件,请通过为每个文件调用Read()
来累积您想要处理的许多记录。