Documentation
¶
Index ¶
- Variables
- func CrossReader(r1, r2 io.Reader, s1, s2 int) io.Reader
- func GetStreamLen(r any) (int64, error)
- func GetStreamSize(r any) (int64, error)
- func LimitWriter(w io.Writer, limit int64) io.Writer
- func MultiCloser(closes ...io.Closer) *multiCloser
- func NewBufferReadSeeker(r io.ReadSeeker, blockSize int, blockNum int) *bufferReadSeeker
- func NewBufferReader(r io.Reader) *bufferReader
- func NewReaderAtBuffer(r io.ReaderAt, blockSize int, blockNum int) *readerAtBuffer
- func NewRepeatReader(data ...byte) io.Reader
- func StreamSizeBySeeking(s io.Reader, all bool) (int64, error)
- func WarpReadSeekReaderAtAddSizeCloser(r ReadSeekReaderAt) (*readSeekReaderAtAddSizeCloser, error)
- func WarpReadSeekerAddSizeCloser(r ReadSeeker) (*readSeekerAddSizeCloser, error)
- type Closer
- type ReadAtCloser
- type ReadSeekCloser
- type ReadSeekReadAtCloser
- type ReadSeekReaderAt
- type ReadSeeker
- type Reader
- type ReaderAt
- type Size
- type SizeReadSeekCloser
- type SizeReadSeekReadAtCloser
- type SizeReadSeekReaderAt
- type SizeReadSeeker
- type SizeReaderAt
- type SizeReaderAtCloser
Constants ¶
This section is empty.
Variables ¶
var ErrNegativeOffset = errors.New("negative offset")
var Zero zeroReader
无限读取零值
Functions ¶
func CrossReader ¶
NewCrossReader 交替读取r1 和 r2, 直到有一个读取完毕 当r1读取s1字节后读取r2 当r2读取s2字节后继续读取r1
func NewBufferReadSeeker ¶
func NewBufferReadSeeker(r io.ReadSeeker, blockSize int, blockNum int) *bufferReadSeeker
NewReaderAtBuffer return ReadSeekCloserAt 基于lru为io.ReadSeeker提供缓存支持 io.ErrUnexpectedEOF 转换为 io.EOF @param blockSize 缓存块大小。 @param blockNum 缓存块数量.
func NewBufferReader ¶
NewBufferingReaderAt 将 io.Reader 读取到内存中以支持 io.ReaderAt & io.ReadSeeker 按需求读取到内存
func NewReaderAtBuffer ¶
NewReaderAtBuffer 基于lru为io.ReaderAt提供缓存支持 @param blockSize 缓存块大小 @param blockNum 缓存块数量 @return io.ReaderAt
func NewRepeatReader ¶
RepeatReader 重复读取data数据,永远不会返回io.EOF
func StreamSizeBySeeking ¶
StreamSizeBySeeking 通过 io.Seeker 方法获取文件大小 也可用于验证 io.Seeker 是否可用 @param all 是否返回总大小,而不是可读大小
func WarpReadSeekReaderAtAddSizeCloser ¶
func WarpReadSeekReaderAtAddSizeCloser(r ReadSeekReaderAt) (*readSeekReaderAtAddSizeCloser, error)
包装 ReadSeekReaderAt 接口为 SizeReadSeekReadAtCloser 接口 通过 io.Seek 接口获取大小
func WarpReadSeekerAddSizeCloser ¶
func WarpReadSeekerAddSizeCloser(r ReadSeeker) (*readSeekerAddSizeCloser, error)
包装 ReadSeekReaderAt 接口为 SizeReadSeekReadAtCloser 接口 通过 io.Seek 接口获取大小
Types ¶
type ReadAtCloser ¶
type ReadSeekCloser ¶
type ReadSeekCloser = io.ReadSeekCloser
type ReadSeekReadAtCloser ¶
type ReadSeekReadAtCloser struct { ReadSeekReaderAt Closer }
type SizeReadSeekCloser ¶
type SizeReadSeekCloser interface { Size ReadSeeker Closer }
type SizeReadSeekReadAtCloser ¶
type SizeReadSeekReadAtCloser interface { Size ReadSeekReaderAt Closer }
type SizeReadSeekReaderAt ¶
type SizeReadSeekReaderAt interface { Size ReadSeekReaderAt }
type SizeReadSeeker ¶
type SizeReadSeeker interface { Size ReadSeeker }
func LimitReadSeeker ¶
func LimitReadSeeker(r io.ReadSeeker, offset, size int64) SizeReadSeeker
限制 io.ReadSeek 读取范围