Stream 实现Seek方法的流
我正在试图找到一个接口,它允许我创建一个流,允许从文件或Stream 实现Seek方法的流,stream,go,Stream,Go,我正在试图找到一个接口,它允许我创建一个流,允许从文件或[]字节中查找(也可以使用读取器),但在godoc中似乎找不到任何内容。bufio包中的一些类型可以很好地工作,但它们似乎不支持查找 有什么我忽略了的东西适合我正在寻找的吗?实现io.Seek接口,从而拥有Seek方法 io.Seeker is implemented by... *bytes.Reader *io.SectionReader io.ReadSeeker io.
[]字节
中查找(也可以使用读取器),但在godoc中似乎找不到任何内容。bufio
包中的一些类型可以很好地工作,但它们似乎不支持查找
有什么我忽略了的东西适合我正在寻找的吗?实现
io.Seek
接口,从而拥有Seek
方法
io.Seeker is implemented by...
*bytes.Reader
*io.SectionReader
io.ReadSeeker
io.WriteSeeker
io.ReadWriteSeeker
mime/multipart.File
net/http.File
*os.File
*strings.Reader
因此,如果您正在处理一个文件,因此很可能是
*os.file
,您不需要做任何额外的事情来查找它。只要确保如果您使用的是接口而不是具体类型,那么您不希望使用io.Reader
,而是io.ReadSeeker
,*os.File
(用于文件)和*bytes.Reader
(用于从[]byte
获得io.Reader
)实现io.Seek
接口,从而拥有Seek
方法
io.Seeker is implemented by...
*bytes.Reader
*io.SectionReader
io.ReadSeeker
io.WriteSeeker
io.ReadWriteSeeker
mime/multipart.File
net/http.File
*os.File
*strings.Reader
因此,如果您正在处理一个文件,因此很可能是
*os.file
,您不需要做任何额外的事情来查找它。只要确保如果您使用的是接口而不是具体类型,那么您不需要io.Reader
而是io.readseek
哇,谢谢!我想我也错过了bytes
包。好奇的是,您是如何看到io.Seeker接口是由什么实现的?我编写了一个名为“implements”(实现)的工具,它可以显示“T implements I”和“I是由T实现的”关系。在本例中,我运行了implements-interfaces io-types std-reverse
并滚动到io.Seeker.Wow,谢谢!我想我也错过了bytes
包。好奇的是,您是如何看到io.Seeker接口是由什么实现的?我编写了一个名为“implements”(实现)的工具,它可以显示“T implements I”和“I是由T实现的”关系。在本例中,我运行了implements-interfaces io-types std-reverse
,并滚动到io.seek.Call,但具有seek功能的流不是流而是缓冲区。可以调用任何内容,但具有seek功能的流不是流而是缓冲区。