Class LinkedDataReader
java.lang.Object
cool.scx.io.data_reader.LinkedDataReader
- All Implemented Interfaces:
DataReader
LinkedDataReader
- Version:
- 0.0.1
- Author:
- scx567888
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidappendData(DataNode data) longensureAvailable(long maxPullCount) longensureAvailableOrThrow(long maxPullCount) longfindIndex(DataIndexer indexer, long maxLength, long maxPullCount) longindexOf(DataIndexer indexer, long maxLength, long maxPullCount) 查找索引intInputStream 写法的 readintinputStreamRead(byte[] b, int off, int len) InputStream 写法的 readlonginputStreamTransferTo(OutputStream out, long maxLength) InputStream 写法的 readvoidmark()标记bytepeek()查看单个字节 (指针会移动) 当没有更多的数据时会抛出异常voidpeek(DataConsumer dataConsumer, long maxLength, long maxPullCount) 向 dataConsumer 写入指定长度字节 (指针不会移动) 当没有更多的数据时会抛出异常booleanpullData()byteread()读取单个字节 (指针会移动) 当没有更多的数据时会抛出异常voidread(DataConsumer dataConsumer, long maxLength, long maxPullCount) 向 dataConsumer 写入指定长度字节 (指针会移动) 当没有更多的数据时会抛出异常voidreset()重置voidwalk(DataConsumer consumer, long maxLength, boolean movePointer, long maxPullCount)
-
Field Details
-
dataSupplier
-
head
-
tail
-
markNode
-
markNodePosition
public int markNodePosition
-
-
Constructor Details
-
LinkedDataReader
-
LinkedDataReader
public LinkedDataReader()
-
-
Method Details
-
appendData
-
pullData
public boolean pullData() -
ensureAvailable
public long ensureAvailable(long maxPullCount) -
ensureAvailableOrThrow
- Throws:
NoMoreDataException
-
walk
-
findIndex
public long findIndex(DataIndexer indexer, long maxLength, long maxPullCount) throws NoMatchFoundException - Throws:
NoMatchFoundException
-
read
Description copied from interface:DataReader读取单个字节 (指针会移动) 当没有更多的数据时会抛出异常- Specified by:
readin interfaceDataReader- Returns:
- byte
- Throws:
NoMoreDataException- 没有更多数据时抛出
-
read
public void read(DataConsumer dataConsumer, long maxLength, long maxPullCount) throws NoMoreDataException Description copied from interface:DataReader向 dataConsumer 写入指定长度字节 (指针会移动) 当没有更多的数据时会抛出异常- Specified by:
readin interfaceDataReader- Parameters:
dataConsumer- 消费者maxLength- 最大长度maxPullCount- 最大长度- Throws:
NoMoreDataException- 没有更多数据时抛出
-
peek
Description copied from interface:DataReader查看单个字节 (指针会移动) 当没有更多的数据时会抛出异常- Specified by:
peekin interfaceDataReader- Returns:
- byte
- Throws:
NoMoreDataException- 没有更多数据时抛出
-
peek
public void peek(DataConsumer dataConsumer, long maxLength, long maxPullCount) throws NoMoreDataException Description copied from interface:DataReader向 dataConsumer 写入指定长度字节 (指针不会移动) 当没有更多的数据时会抛出异常- Specified by:
peekin interfaceDataReader- Parameters:
dataConsumer- 消费者maxLength- 最大长度maxPullCount- 最大长度- Throws:
NoMoreDataException- 没有更多数据时抛出
-
indexOf
public long indexOf(DataIndexer indexer, long maxLength, long maxPullCount) throws NoMatchFoundException, NoMoreDataException Description copied from interface:DataReader查找索引- Specified by:
indexOfin interfaceDataReader- Throws:
NoMatchFoundExceptionNoMoreDataException
-
mark
public void mark()Description copied from interface:DataReader标记- Specified by:
markin interfaceDataReader
-
reset
public void reset()Description copied from interface:DataReader重置- Specified by:
resetin interfaceDataReader
-
inputStreamRead
public int inputStreamRead()Description copied from interface:DataReaderInputStream 写法的 read- Specified by:
inputStreamReadin interfaceDataReader
-
inputStreamRead
public int inputStreamRead(byte[] b, int off, int len) Description copied from interface:DataReaderInputStream 写法的 read- Specified by:
inputStreamReadin interfaceDataReader
-
inputStreamTransferTo
Description copied from interface:DataReaderInputStream 写法的 read- Specified by:
inputStreamTransferToin interfaceDataReader
-