Go中跳过多个字节的最佳方法是什么io.Reader?也就是说,有没有这需要一个标准库函数读取和计数,将读取并处理数从字节读者?
用例示例:
func DoWithReader(r io.Reader) {
SkipNBytes(r, 30); // Read and dispose 30 bytes from reader
}
Run Code Online (Sandbox Code Playgroud)
我不需要在流中向后移动,因此任何可以在不转换io.Reader为其他读取器类型的情况下工作的东西都是首选.
fuz*_*fuz 19
你可以使用这种结构:
import "io"
import "io/ioutil"
io.CopyN(ioutil.Discard, yourReader, count)
Run Code Online (Sandbox Code Playgroud)
它将请求的字节数复制到io.Writer丢弃它所读取的内容中.
如果您io.Reader是a io.Seeker,您可能需要考虑在流中寻找跳过要跳过的字节数:
import "io"
import "io/ioutil"
switch r := yourReader.(type) {
case io.Seeker:
r.Seek(count, io.SeekCurrent)
default:
io.CopyN(ioutil.Discard, r, count)
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2891 次 |
| 最近记录: |