ioutils

package
v0.0.0-...-8dc309f Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 17, 2023 License: GPL-3.0 Imports: 8 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var ErrNegativeOffset = errors.New("negative offset")
View Source
var Zero zeroReader

无限读取零值

Functions

func CrossReader

func CrossReader(r1, r2 io.Reader, s1, s2 int) io.Reader

NewCrossReader 交替读取r1 和 r2, 直到有一个读取完毕 当r1读取s1字节后读取r2 当r2读取s2字节后继续读取r1

func GetStreamLen

func GetStreamLen(r any) (int64, error)

GetStreamLen 使用 Len() 方法获取可读取部分大小

func GetStreamSize

func GetStreamSize(r any) (int64, error)

GetStreamSize 使用 Size() 方法获取大小

func LimitWriter

func LimitWriter(w io.Writer, limit int64) io.Writer

func MultiCloser

func MultiCloser(closes ...io.Closer) *multiCloser

合并多个关闭接口

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

func NewBufferReader(r io.Reader) *bufferReader

NewBufferingReaderAt 将 io.Reader 读取到内存中以支持 io.ReaderAt & io.ReadSeeker 按需求读取到内存

func NewReaderAtBuffer

func NewReaderAtBuffer(r io.ReaderAt, blockSize int, blockNum int) *readerAtBuffer

NewReaderAtBuffer 基于lru为io.ReaderAt提供缓存支持 @param blockSize 缓存块大小 @param blockNum 缓存块数量 @return io.ReaderAt

func NewRepeatReader

func NewRepeatReader(data ...byte) io.Reader

RepeatReader 重复读取data数据,永远不会返回io.EOF

func StreamSizeBySeeking

func StreamSizeBySeeking(s io.Reader, all bool) (int64, error)

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 Closer

type Closer = io.Closer

type ReadAtCloser

type ReadAtCloser interface {
	ReaderAt
	Closer
}

type ReadSeekCloser

type ReadSeekCloser = io.ReadSeekCloser

type ReadSeekReadAtCloser

type ReadSeekReadAtCloser struct {
	ReadSeekReaderAt
	Closer
}

type ReadSeekReaderAt

type ReadSeekReaderAt interface {
	ReadSeeker
	ReaderAt
}

ReadSeekReaderAt

type ReadSeeker

type ReadSeeker = io.ReadSeeker

ReadSeeker

type Reader

type Reader = io.Reader

type ReaderAt

type ReaderAt = io.ReaderAt

ReaderAt

type Size

type Size interface{ Size() int64 }

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 读取范围

type SizeReaderAt

type SizeReaderAt interface {
	Size
	ReaderAt
}

func MultiReaderAt

func MultiReaderAt(parts ...SizeReaderAt) SizeReaderAt

合并多个 SizeReaderAt 接口

type SizeReaderAtCloser

type SizeReaderAtCloser interface {
	Size
	ReaderAt
	Closer
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL