Package org.apache.poi.poifs.storage
Class HeaderBlock
- java.lang.Object
-
- org.apache.poi.poifs.storage.HeaderBlock
-
- All Implemented Interfaces:
HeaderBlockConstants
public final class HeaderBlock extends java.lang.Object implements HeaderBlockConstants
The block containing the archive header
-
-
Field Summary
-
Fields inherited from interface org.apache.poi.poifs.storage.HeaderBlockConstants
_bat_array_offset, _bat_count_offset, _max_bats_in_header, _property_start_offset, _sbat_block_count_offset, _sbat_start_offset, _signature, _signature_offset, _xbat_count_offset, _xbat_start_offset
-
-
Constructor Summary
Constructors Constructor Description HeaderBlock(java.io.InputStream stream)
create a new HeaderBlockReader from an InputStreamHeaderBlock(java.nio.ByteBuffer buffer)
HeaderBlock(POIFSBigBlockSize bigBlockSize)
Create a single instance initialized with default values
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description int[]
getBATArray()
Returns the offsets to the first (up to) 109 BAT sectors.int
getBATCount()
POIFSBigBlockSize
getBigBlockSize()
int
getPropertyStart()
get start of Property Tableint
getSBATCount()
int
getSBATStart()
int
getXBATCount()
int
getXBATIndex()
void
setBATArray(int[] bat_array)
Sets the offsets of the first (up to) 109 BAT sectors.void
setBATCount(int count)
Sets the number of BAT blocks that are used.void
setPropertyStart(int startBlock)
Set start of Property Tablevoid
setSBATBlockCount(int count)
Set count of SBAT blocksvoid
setSBATStart(int startBlock)
Set start of small block allocation tablevoid
setXBATCount(int count)
Sets the number of XBAT (DIFAT) blocks usedvoid
setXBATStart(int startBlock)
Sets the first XBAT (DIFAT) block locationvoid
writeData(java.io.OutputStream stream)
Write the block's data to an OutputStream
-
-
-
Constructor Detail
-
HeaderBlock
public HeaderBlock(java.io.InputStream stream) throws java.io.IOException
create a new HeaderBlockReader from an InputStream- Parameters:
stream
- the source InputStream- Throws:
java.io.IOException
- on errors or bad data
-
HeaderBlock
public HeaderBlock(java.nio.ByteBuffer buffer) throws java.io.IOException
- Throws:
java.io.IOException
-
HeaderBlock
public HeaderBlock(POIFSBigBlockSize bigBlockSize)
Create a single instance initialized with default values
-
-
Method Detail
-
getPropertyStart
public int getPropertyStart()
get start of Property Table- Returns:
- the index of the first block of the Property Table
-
setPropertyStart
public void setPropertyStart(int startBlock)
Set start of Property Table- Parameters:
startBlock
- the index of the first block of the Property Table
-
getSBATStart
public int getSBATStart()
- Returns:
- start of small block (MiniFAT) allocation table
-
getSBATCount
public int getSBATCount()
-
setSBATStart
public void setSBATStart(int startBlock)
Set start of small block allocation table- Parameters:
startBlock
- the index of the first big block of the small block allocation table
-
setSBATBlockCount
public void setSBATBlockCount(int count)
Set count of SBAT blocks- Parameters:
count
- the number of SBAT blocks
-
getBATCount
public int getBATCount()
- Returns:
- number of BAT blocks
-
setBATCount
public void setBATCount(int count)
Sets the number of BAT blocks that are used. This is the number used in both the BAT and XBAT.
-
getBATArray
public int[] getBATArray()
Returns the offsets to the first (up to) 109 BAT sectors. Any additional BAT sectors are held in the XBAT (DIFAT) sectors in a chain.- Returns:
- BAT offset array
-
setBATArray
public void setBATArray(int[] bat_array)
Sets the offsets of the first (up to) 109 BAT sectors.
-
getXBATCount
public int getXBATCount()
- Returns:
- XBAT (DIFAT) count
-
setXBATCount
public void setXBATCount(int count)
Sets the number of XBAT (DIFAT) blocks used
-
getXBATIndex
public int getXBATIndex()
- Returns:
- XBAT (DIFAT) index
-
setXBATStart
public void setXBATStart(int startBlock)
Sets the first XBAT (DIFAT) block location
-
getBigBlockSize
public POIFSBigBlockSize getBigBlockSize()
- Returns:
- The Big Block size, normally 512 bytes, sometimes 4096 bytes
-
writeData
public void writeData(java.io.OutputStream stream) throws java.io.IOException
Write the block's data to an OutputStream- Parameters:
stream
- the OutputStream to which the stored data should be written- Throws:
java.io.IOException
- on problems writing to the specified stream
-
-