Class BufferedInputStreamByteSupplier
java.lang.Object
cool.scx.io.supplier.BufferedInputStreamByteSupplier
- All Implemented Interfaces:
ByteSupplier, AutoCloseable
BufferedInputStreamByteSupplier
和
InputStreamByteSupplier 性能表现相反
1, 当大部分时候读取的数据长度等于 bufferLength 的时候, 性能会差一点 因为多了一次复制
2, 当大部分时候读取的数据长度小于 bufferLength 的时候, 性能会好一点 因为只会创建一个较小的数组并复制数据- Version:
- 0.0.1
- Author:
- scx567888
-
Constructor Summary
ConstructorsConstructorDescriptionBufferedInputStreamByteSupplier(InputStream inputStream) BufferedInputStreamByteSupplier(InputStream inputStream, int bufferLength) -
Method Summary
-
Constructor Details
-
BufferedInputStreamByteSupplier
-
BufferedInputStreamByteSupplier
-
-
Method Details
-
get
Description copied from interface:ByteSupplier获取下一个数据块
- 必须是推进式的阻塞拉取
- 如果当前已经读取到有效数据 -> 返回 ByteChunk(len > 0)
- 如果暂时无法输出数据, 但 I/O 状态确实推进了 -> 返回 EMPTY_BYTE_CHUNK
- 如果 EOF 且不会再产生数据 -> 返回 null
- 不允许无状态的空循环: 供应者不得无意义地连续返回 EMPTY_BYTE_CHUNK
- 连续多次调用 get() 必须使底层数据源或解码状态单调推进
- Specified by:
getin interfaceByteSupplier- Returns:
- ByteChunk.
- Throws:
IOException
-
close
Description copied from interface:ByteSupplier如果持有底层资源, 在此方法释放资源- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfaceByteSupplier- Throws:
IOException
-
inputStream
-