go - 从 io.Reader 创建一个 io.ReaderAt

标签 go interface

是否有 io.ReaderAt 的实现可以从 io.Reader 的实现创建而无需先读入 []bytestring?

最佳答案

类似下面的内容。注意 bytes.Reader 实现了 ReadAt(...) 方法/函数:https://golang.org/pkg/bytes/#Reader.ReadAt .所以 bytes.NewReader 行本质上就是您要查找的内容。

获取bytes.Reader:

var ioReader io.Reader
...
buff := bytes.NewBuffer([]byte{})
size, err := io.Copy(buff, ioReader)
if err != nil {
    return err
}

reader := bytes.NewReader(buff.Bytes())
// Do something with `reader`

关于go - 从 io.Reader 创建一个 io.ReaderAt,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40204770/

相关文章:

android - 将 JNIEnv 或上下文从 Java 传递给 Go

go - 拉 0 大小的 golang chan

go - 反射值接口(interface)和指针接收器

go - 如何检测/处理多种 unicode 方式对字母上的重音进行编码

java - Spring方面调用接口(interface)方法上的自定义注释

cocoa - 为 NSToolbar 制作 NSToolbar 图标

interface - JAXB 注释 - 映射接口(interface)和 @XmlElementWrapper

go - Websocket 打开的文件太多

c++ - 虚拟类多重继承

c# - 有什么方法可以创建一个不能在其程序集之外实现的公共(public) .NET 接口(interface)吗?