public final class ContinuableRecordOutput extends java.lang.Object implements LittleEndianOutput
LittleEndianOutput
used for serialization of
ContinuableRecord
s. This class keeps track of how much remaining space is available in the current BIFF record and can start new
ContinueRecord
s as required.
(用于 ContinuableRecords 序列化的增强型 LittleEndianOutput。此类跟踪当前 BIFF 记录中可用的剩余空间量,并可根据需要启动新的 ContinueRecords。)
Constructor and Description |
---|
ContinuableRecordOutput(LittleEndianOutput out, int sid) |
Modifier and Type | Method and Description |
---|---|
static ContinuableRecordOutput |
createForCountingOnly() |
int |
getAvailableSpace() |
int |
getTotalSize() |
void |
write(byte[] b) |
void |
write(byte[] b, int offset, int len) |
void |
writeByte(int v) |
void |
writeContinue()
Terminates the current record and starts a new
ContinueRecord (regardless of how much space is still available in the current record).
(终止当前记录并开始一个新的 ContinueRecord(不管当前记录中还有多少可用空间)。)
|
void |
writeContinueIfRequired(int requiredContinuousSize)
Will terminate the current record and start a new
ContinueRecord if there isn't space for the requested number of bytes
(如果请求的字节数没有空间,将终止当前记录并开始一个新的 ContinueRecord)
|
void |
writeDouble(double v) |
void |
writeInt(int v) |
void |
writeLong(long v) |
void |
writeShort(int v) |
void |
writeString(java.lang.String text, int numberOfRichTextRuns, int extendedDataSize)
Writes a unicode string complete with header and character data.
(写入包含标题和字符数据的 unicode 字符串。)
|
void |
writeStringData(java.lang.String text)
Writes the 'optionFlags' byte and encoded character data of a unicode string.
(写入 unicode 字符串的 'optionFlags' 字节和编码字符数据。)
|
public ContinuableRecordOutput(LittleEndianOutput out, int sid)
public static ContinuableRecordOutput createForCountingOnly()
public int getTotalSize()
public int getAvailableSpace()
public void writeContinue()
ContinueRecord
(regardless of how much space is still available in the current record).
(终止当前记录并开始一个新的 ContinueRecord(不管当前记录中还有多少可用空间)。)
public void writeContinueIfRequired(int requiredContinuousSize)
ContinueRecord
if there isn't space for the requested number of bytes
(如果请求的字节数没有空间,将终止当前记录并开始一个新的 ContinueRecord)
requiredContinuousSize
- The number of bytes that need to be written
(requiredContinuousSize - 需要写入的字节数)
public void writeStringData(java.lang.String text)
ContinueRecord
) from the first chunk of character data it refers to.ContinueRecord
public void writeString(java.lang.String text, int numberOfRichTextRuns, int extendedDataSize)
Mask | Description |
---|---|
0x01 | is16bitEncoded |
0x04 | hasExtendedData |
0x08 | isRichText |
ContinueRecord
) from the first chunk of character data (i.e. the first character is always encoded in the same record as the string header).public void write(byte[] b)
write
in interface
LittleEndianOutput
(写入接口 LittleEndianOutput)
public void write(byte[] b, int offset, int len)
write
in interface
LittleEndianOutput
(写入接口 LittleEndianOutput)
public void writeByte(int v)
writeByte
in interface
LittleEndianOutput
(接口 LittleEndianOutput 中的 writeByte)
public void writeDouble(double v)
writeDouble
in interface
LittleEndianOutput
(接口 LittleEndianOutput 中的 writeDouble)
public void writeInt(int v)
writeInt
in interface
LittleEndianOutput
(接口 LittleEndianOutput 中的 writeInt)
public void writeLong(long v)
writeLong
in interface
LittleEndianOutput
(接口 LittleEndianOutput 中的 writeLong)
public void writeShort(int v)
writeShort
in interface
LittleEndianOutput
(接口 LittleEndianOutput 中的 writeShort)
Copyright 2021 The Apache Software Foundation or its licensors, as applicable.