io.reader 怎么复制?

rffan · 2017-06-19 03:05:33 · 4918 次点击 · 大约8小时之前 开始浏览    置顶
这是一个创建于 2017-06-19 03:05:33 的主题,其中的信息可能已经有所发展或是发生改变。

RT,因为我遇到io.reader 被读取一次后就没了。所以想解决一下这个问题。怎么玩,是io.Copy?


有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

4918 次点击  
加入收藏 微博
4 回复  |  直到 2017-06-22 03:44:22
channel
channel · #1 · 8年之前

io.Copy 可以啊。如果你需要多次读取,需要实现 io.Seeker, 可以 Reset(注意要确实可多次读取)

rffan
rffan · #2 · 8年之前
channelchannel #1 回复

io.Copy 可以啊。如果你需要多次读取,需要实现 io.Seeker, 可以 Reset(注意要确实可多次读取)

0.0具体怎么玩?有样例不?godoc看的晕晕乎乎的

polaris
polaris · #3 · 8年之前

关于 Seeker,可以看下 基本 IO 接口 中关于 Seeker 的部分。

dong-hao
dong-hao · #4 · 8年之前

你可以先把 io.Reader 类型的对象读到 []bytes 类型的对象里面,通过 []bytes 类型对象创建多个 io.Reader 比如:

b, err :=  ioutil.ReadAll(io.Reader)
reader1 := bytes.NewReader(b)
reader2 := bytes.NewReader(b)
...
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传