hutool.core.io.streams

IO工具模块

Module Contents

Classes

IoUtil

IO工具类

API

class hutool.core.io.streams.IoUtil

IO工具类

static read(stream: IO, charset: str = 'utf-8') str

从流中读取字符串

参数:
  • stream – 输入流(需支持 read 方法)

  • charset – 字符编码,默认 utf-8

返回:

读取到的字符串内容

static read_bytes(stream: IO) bytes

从流中读取字节数组

参数:

stream – 输入流(需支持 read 方法)

返回:

读取到的字节数组

static read_lines(stream: IO, charset: str = 'utf-8') List[str]

从流中读取行列表

参数:
  • stream – 输入流(需支持 read 或 readlines 方法)

  • charset – 字符编码,默认 utf-8

返回:

行列表

static write(stream: IO, data: Union[str, bytes], charset: str = 'utf-8') int

写入数据到流

参数:
  • stream – 输出流(需支持 write 方法)

  • data – 要写入的数据(str 或 bytes)

  • charset – 当 data 为 str 时使用的编码,默认 utf-8

返回:

写入的字节数

static write_bytes(stream: IO, data: bytes) int

写入字节数组到流

参数:
  • stream – 输出流(需支持 write 方法)

  • data – 要写入的字节数组

返回:

写入的字节数

static copy(input_stream: IO, output_stream: IO, buffer_size: int = 8192) int

拷贝流数据

参数:
  • input_stream – 输入流

  • output_stream – 输出流

  • buffer_size – 缓冲区大小,默认 8192 字节

返回:

拷贝的总字节数

static close(closable: Optional[IO]) None

安全关闭可关闭对象

如果对象为 None 或已关闭,则不做任何操作。

参数:

closable – 可关闭对象(如文件流),可以为 None

static to_bytes(obj: Union[str, bytes, bytearray, memoryview]) bytes

将对象转为 bytes

支持 str / bytes / bytearray / memoryview 类型。

参数:

obj – 待转换的对象

返回:

字节数组

抛出:

TypeError – 不支持的对象类型

static checksum(stream: IO, algorithm: str = 'md5') str

计算流内容的校验和(十六进制字符串)

参数:
  • stream – 输入流(需支持 read 方法)

  • algorithm – 哈希算法名称,默认 md5;支持 sha1、sha256 等

返回:

校验和的十六进制字符串

static checksum_crc32(stream: IO) int

计算流内容的 CRC32 校验和

参数:

stream – 输入流(需支持 read 方法)

返回:

CRC32 校验和(无符号 32 位整数)

static checksum_value(stream: IO, algorithm: str = 'md5') int

计算流内容的校验和(整数形式)

参数:
  • stream – 输入流(需支持 read 方法)

  • algorithm – 哈希算法名称,默认 md5

返回:

校验和对应的整数值

static content_equals(stream1: IO, stream2: IO) bool

比较两个流的内容是否完全相同

参数:
  • stream1 – 第一个输入流

  • stream2 – 第二个输入流

返回:

内容相同返回 True,否则返回 False

static content_equals_ignore_eol(stream1: IO, stream2: IO) bool

比较两个流的内容是否相同(忽略行结束符差异)

将 rn 和 r 统一转为 n 后再进行比较。

参数:
  • stream1 – 第一个输入流

  • stream2 – 第二个输入流

返回:

忽略行结束符后内容相同返回 True,否则返回 False

static flush(output_stream: IO) None

刷新输出流

如果流对象没有 flush 方法则不做任何操作。

参数:

output_stream – 输出流

static line_iter(stream: IO, charset: str = 'utf-8') Iterator[str]

逐行迭代流内容

参数:
  • stream – 输入流(需支持 read 方法)

  • charset – 字符编码,默认 utf-8

返回:

行内容的迭代器(不含换行符)

static read_hex(stream: IO, separator: str = '') str

以十六进制字符串形式读取流内容

参数:
  • stream – 输入流(需支持 read 方法)

  • separator – 每个字节之间的分隔符,默认为空

返回:

十六进制字符串

static read_utf8(stream: IO) str

以 UTF-8 编码读取流内容

参数:

stream – 输入流(需支持 read 方法)

返回:

UTF-8 解码后的字符串

static read_utf8_lines(stream: IO) List[str]

以 UTF-8 编码读取流的行列表

参数:

stream – 输入流(需支持 read 方法)

返回:

行列表

static to_str(stream: IO, charset: str = 'utf-8') str

将流内容转为字符串

参数:
  • stream – 输入流(需支持 read 方法)

  • charset – 字符编码,默认 utf-8

返回:

解码后的字符串

static to_stream(s: str, charset: str = 'utf-8') IO

将字符串转为 BytesIO 流

参数:
  • s – 待转换的字符串

  • charset – 编码方式,默认 utf-8

返回:

包含编码后数据的 BytesIO 对象

static to_utf8_stream(s: str) IO

将字符串转为 UTF-8 编码的 BytesIO 流

参数:

s – 待转换的字符串

返回:

包含 UTF-8 编码数据的 BytesIO 对象

static write_utf8(output_stream: IO, data: str) int

以 UTF-8 编码写入字符串到流

参数:
  • output_stream – 输出流(需支持 write 方法)

  • data – 要写入的字符串

返回:

写入的字节数