stream

package
v1.4.0 Latest Latest
Warning

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

Go to latest
Published: Dec 29, 2025 License: BSD-3-Clause Imports: 6 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Get7BitEncodedIntSize

func Get7BitEncodedIntSize(value int32) int

Get7BitEncodedIntSize 计算编码一个 int32 值所需的字节数 与 Write7BitEncodedInt 保持一致的编码逻辑

Types

type BinaryReader

type BinaryReader struct {
	R io.Reader
	// contains filtered or unexported fields
}

BinaryReader 提供从流中读取 C# 基本类型的功能 共享缓冲,性能更高,不支持并发

func NewBinaryReader

func NewBinaryReader(r io.Reader) *BinaryReader

NewBinaryReader 创建一个新的 BinaryReader

func (*BinaryReader) PeekByte

func (br *BinaryReader) PeekByte() (byte, error)

PeekByte 偷看下一个字节,不移动读取指针。 要求 reader 实现 Peeker 接口,例如 bufio.Reader。

func (*BinaryReader) PeekString

func (br *BinaryReader) PeekString() (string, error)

PeekString 读取下一个字符串(7BitEncode + UTF-8),但不消耗它。 要求 reader 实现 Peeker 接口,例如 bufio.Reader。

注意:如果字符串长度超过了 bufio.Reader 的缓冲区大小(默认 4KB), Peek 操作会返回 bufio.ErrBufferFull。 如果需要处理超大字符串,请在创建 bufio.Reader 时指定更大的缓冲区大小

func (*BinaryReader) ReadBool

func (br *BinaryReader) ReadBool() (bool, error)

ReadBool 读取布尔值

func (*BinaryReader) ReadByte

func (br *BinaryReader) ReadByte() (byte, error)

ReadByte 读取单个字节

func (*BinaryReader) ReadBytes

func (br *BinaryReader) ReadBytes(count int) ([]byte, error)

ReadBytes 读取指定数量的字节

func (*BinaryReader) ReadFloat2

func (br *BinaryReader) ReadFloat2() ([2]float32, error)

ReadFloat2 读取 2 个连续的 float32 (Vector2)

func (*BinaryReader) ReadFloat3

func (br *BinaryReader) ReadFloat3() ([3]float32, error)

ReadFloat3 读取 3 个连续的 float32 (Vector3)

func (*BinaryReader) ReadFloat32

func (br *BinaryReader) ReadFloat32() (float32, error)

ReadFloat32 读取 4 字节浮点数 (little-endian)

func (*BinaryReader) ReadFloat4

func (br *BinaryReader) ReadFloat4() ([4]float32, error)

ReadFloat4 读取 4 个连续的 float32 (Vector4/Quaternion)

func (*BinaryReader) ReadFloat4x4

func (br *BinaryReader) ReadFloat4x4() ([16]float32, error)

ReadFloat4x4 读取 16 个连续的 float32 (4x4 Matrix)

func (*BinaryReader) ReadFloat64

func (br *BinaryReader) ReadFloat64() (float64, error)

ReadFloat64 读取 8 字节浮点数 (little-endian)

func (*BinaryReader) ReadInt16

func (br *BinaryReader) ReadInt16() (int16, error)

ReadInt16 读取 2 字节有符号整数 (little-endian)

func (*BinaryReader) ReadInt32

func (br *BinaryReader) ReadInt32() (int32, error)

ReadInt32 读取 4 字节有符号整数 (little-endian)

func (*BinaryReader) ReadInt64

func (br *BinaryReader) ReadInt64() (int64, error)

ReadInt64 读取 8 字节有符号整数 (little-endian)

func (*BinaryReader) ReadSByte

func (br *BinaryReader) ReadSByte() (int8, error)

ReadSByte 读取有符号字节

func (*BinaryReader) ReadString

func (br *BinaryReader) ReadString() (string, error)

ReadString 读取长度前缀的 UTF-8 字符串(与 C# BinaryWriter 兼容)

func (*BinaryReader) ReadUInt16

func (br *BinaryReader) ReadUInt16() (uint16, error)

ReadUInt16 读取 2 字节无符号整数 (little-endian)

func (*BinaryReader) ReadUInt32

func (br *BinaryReader) ReadUInt32() (uint32, error)

ReadUInt32 读取 4 字节无符号整数 (little-endian)

func (*BinaryReader) ReadUInt64

func (br *BinaryReader) ReadUInt64() (uint64, error)

ReadUInt64 读取 8 字节无符号整数 (little-endian)

type BinaryWriter

type BinaryWriter struct {
	W io.Writer
	// contains filtered or unexported fields
}

BinaryWriter 提供向流中写入 C# 基本类型的功能 共享缓冲,性能更高,不支持并发

func NewBinaryWriter

func NewBinaryWriter(w io.Writer) *BinaryWriter

NewBinaryWriter 创建一个新的 BinaryWriter

func (*BinaryWriter) Flush

func (bw *BinaryWriter) Flush() error

Flush 刷新底层写入器(如果支持)

func (*BinaryWriter) WriteBool

func (bw *BinaryWriter) WriteBool(value bool) error

WriteBool 写入布尔值

func (*BinaryWriter) WriteByte

func (bw *BinaryWriter) WriteByte(value byte) error

WriteByte 写入单个字节

func (*BinaryWriter) WriteBytes

func (bw *BinaryWriter) WriteBytes(value []byte) error

WriteBytes 写入字节数组

func (*BinaryWriter) WriteFloat2

func (bw *BinaryWriter) WriteFloat2(arr [2]float32) error

WriteFloat2 写入 2 个连续的 float32 (Vector2)

func (*BinaryWriter) WriteFloat3

func (bw *BinaryWriter) WriteFloat3(arr [3]float32) error

WriteFloat3 写入 3 个连续的 float32 (Vector3)

func (*BinaryWriter) WriteFloat32

func (bw *BinaryWriter) WriteFloat32(value float32) error

WriteFloat32 写入 4 字节浮点数 (little-endian)

func (*BinaryWriter) WriteFloat4

func (bw *BinaryWriter) WriteFloat4(arr [4]float32) error

WriteFloat4 写入 4 个连续的 float32 (Vector4/Quaternion)

func (*BinaryWriter) WriteFloat4x4

func (bw *BinaryWriter) WriteFloat4x4(arr [16]float32) error

WriteFloat4x4 写入 16 个连续的 float32 (4x4 Matrix)

func (*BinaryWriter) WriteFloat64

func (bw *BinaryWriter) WriteFloat64(value float64) error

WriteFloat64 写入 8 字节浮点数 (little-endian)

func (*BinaryWriter) WriteInt16

func (bw *BinaryWriter) WriteInt16(value int16) error

WriteInt16 写入 2 字节有符号整数 (little-endian)

func (*BinaryWriter) WriteInt32

func (bw *BinaryWriter) WriteInt32(value int32) error

WriteInt32 写入 4 字节有符号整数 (little-endian)

func (*BinaryWriter) WriteInt64

func (bw *BinaryWriter) WriteInt64(value int64) error

WriteInt64 写入 8 字节有符号整数 (little-endian)

func (*BinaryWriter) WriteSByte

func (bw *BinaryWriter) WriteSByte(value int8) error

WriteSByte 写入有符号字节

func (*BinaryWriter) WriteString

func (bw *BinaryWriter) WriteString(value string) error

WriteString 写入长度前缀的 UTF-8 字符串(与 C# BinaryWriter 兼容)

func (*BinaryWriter) WriteUInt16

func (bw *BinaryWriter) WriteUInt16(value uint16) error

WriteUInt16 写入 2 字节无符号整数 (little-endian)

func (*BinaryWriter) WriteUInt32

func (bw *BinaryWriter) WriteUInt32(value uint32) error

WriteUInt32 写入 4 字节无符号整数 (little-endian)

func (*BinaryWriter) WriteUInt64

func (bw *BinaryWriter) WriteUInt64(value uint64) error

WriteUInt64 写入 8 字节无符号整数 (little-endian)

type Peeker added in v1.4.0

type Peeker interface {
	Peek(n int) ([]byte, error)
	io.Reader
}

Peeker 定义了实现了 Peek 方法的接口,bufio.Reader 实现了该接口。

Jump to

Keyboard shortcuts

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