Interface ByteInput

All Superinterfaces:
AutoCloseable
All Known Implementing Classes:
DefaultByteInput, NullByteInput

public interface ByteInput extends AutoCloseable

ByteInput

  • 每次读取操作都是有意义的动作:read / readUpTo 在 length > 0 时至少读取一个字节. 这样保证动作不会成为空操作, 同时消除了 EOF 表达性歧义.

  • EOF(流结束) 是明确的信号: 当无法再读取任何字节时, 抛出 NoMoreDataException. 这保证循环读取的安全性和逻辑自洽性.

  • 方法对读取的容忍度分成三个级别:

  • read(ByteConsumer,long) — 宽松

  • readUpTo(ByteConsumer,long) — 中等

  • readFully(ByteConsumer,long) — 严格

  • read 方法族 长度为 0 的特殊处理: (看作一种无动作)

    • read / readUpTo / readFully length = 0 -> 均采用同一策略, 立即返回, 不抛异常, 即使流已结束.
  • 空模式 indexOf 的特殊处理: (看作一种无动作)

    • 恒返回 0.
  • 读取操作必须产生有效数据, 否则动作没有意义.

    • EOF 是动作完成的标志, 而不是普通返回值.
    • 严格契约保证用户可以安全循环读取, 同时明确何时流结束.
  • 该接口设计偏向严格契约和动作完整性, 而非宽松返回空数组. 这保证了 EOF 明确、循环安全, 并消除了 "0 字节读取歧义" .

Version:
0.0.1
Author:
scx567888