Package org.aoju.bus.core.io.stream
Class SyncInputStream
java.lang.Object
java.io.InputStream
java.io.FilterInputStream
org.aoju.bus.core.io.stream.SyncInputStream
- All Implemented Interfaces:
Closeable,AutoCloseable
同步流,可将包装的流同步为ByteArrayInputStream,以便持有内容并关闭原流
- Since:
- Java 17+
- Author:
- Kimi Liu
-
Field Summary
Fields inherited from class java.io.FilterInputStream
in -
Constructor Summary
ConstructorsConstructorDescriptionSyncInputStream(InputStream in, long length, boolean isAsync, boolean isIgnoreEOFError) -
Method Summary
Modifier and TypeMethodDescriptionlongcopyTo(OutputStream out, Progress streamProgress) 将流的内容拷贝到输出流byte[]读取流中所有bytesvoidsync()同步数据到内存Methods inherited from class java.io.FilterInputStream
available, close, mark, markSupported, read, read, read, reset, skipMethods inherited from class java.io.InputStream
nullInputStream, readAllBytes, readNBytes, readNBytes, skipNBytes, transferTo
-
Constructor Details
-
SyncInputStream
- Parameters:
in- 数据流length- 限定长度,-1表示未知长度isAsync- 是否异步isIgnoreEOFError- 是否忽略EOF错误,在Http协议中,对于Transfer-Encoding: Chunked在正常情况下末尾会写入一个Length为0的的chunk标识完整结束
如果服务端未遵循这个规范或响应没有正常结束,会报EOF异常,此选项用于是否忽略这个异常。
-
-
Method Details
-
sync
public void sync()同步数据到内存 -
readBytes
public byte[] readBytes()读取流中所有bytes- Returns:
- bytes
-
copyTo
将流的内容拷贝到输出流- Parameters:
out- 输出流streamProgress- 进度条- Returns:
- 拷贝长度
-