Package org.apache.tools.tar
Class TarBuffer
java.lang.Object
org.apache.tools.tar.TarBuffer
The TarBuffer class implements the tar archive concept
 of a buffered input stream. This concept goes back to the
 days of blocked tape drives and special io devices. In the
 Java universe, the only real function that this class
 performs is to ensure that files have the correct "block"
 size, or other tars will complain.
 
You should never have a need to access this class directly. TarBuffers are created by Tar IO Streams.
- 
Field SummaryFieldsModifier and TypeFieldDescriptionstatic final intDefault block sizestatic final intDefault record size
- 
Constructor SummaryConstructorsConstructorDescriptionTarBuffer(InputStream inStream) Constructor for a TarBuffer on an input stream.TarBuffer(InputStream inStream, int blockSize) Constructor for a TarBuffer on an input stream.TarBuffer(InputStream inStream, int blockSize, int recordSize) Constructor for a TarBuffer on an input stream.TarBuffer(OutputStream outStream) Constructor for a TarBuffer on an output stream.TarBuffer(OutputStream outStream, int blockSize) Constructor for a TarBuffer on an output stream.TarBuffer(OutputStream outStream, int blockSize, int recordSize) Constructor for a TarBuffer on an output stream.
- 
Method SummaryModifier and TypeMethodDescriptionvoidclose()Close the TarBuffer.intGet the TAR Buffer's block size.intGet the current block number, zero based.intGet the current record number, within the current block, zero based.intGet the TAR Buffer's record size.booleanisEOFRecord(byte[] record) Determine if an archive record indicate End of Archive.byte[]Read a record from the input stream and return the data.voidsetDebug(boolean debug) Set the debugging flag for the buffer.voidSkip over a record on the input stream.voidwriteRecord(byte[] record) Write an archive record to the archive.voidwriteRecord(byte[] buf, int offset) Write an archive record to the archive, where the record may be inside of a larger array buffer.
- 
Field Details- 
DEFAULT_RCDSIZEpublic static final int DEFAULT_RCDSIZEDefault record size- See Also:
 
- 
DEFAULT_BLKSIZEpublic static final int DEFAULT_BLKSIZEDefault block size- See Also:
 
 
- 
- 
Constructor Details- 
TarBufferConstructor for a TarBuffer on an input stream.- Parameters:
- inStream- the input stream to use
 
- 
TarBufferConstructor for a TarBuffer on an input stream.- Parameters:
- inStream- the input stream to use
- blockSize- the block size to use
 
- 
TarBufferConstructor for a TarBuffer on an input stream.- Parameters:
- inStream- the input stream to use
- blockSize- the block size to use
- recordSize- the record size to use
 
- 
TarBufferConstructor for a TarBuffer on an output stream.- Parameters:
- outStream- the output stream to use
 
- 
TarBufferConstructor for a TarBuffer on an output stream.- Parameters:
- outStream- the output stream to use
- blockSize- the block size to use
 
- 
TarBufferConstructor for a TarBuffer on an output stream.- Parameters:
- outStream- the output stream to use
- blockSize- the block size to use
- recordSize- the record size to use
 
 
- 
- 
Method Details- 
getBlockSizepublic int getBlockSize()Get the TAR Buffer's block size. Blocks consist of multiple records.- Returns:
- the block size
 
- 
getRecordSizepublic int getRecordSize()Get the TAR Buffer's record size.- Returns:
- the record size
 
- 
setDebugpublic void setDebug(boolean debug) Set the debugging flag for the buffer.- Parameters:
- debug- If true, print debugging output.
 
- 
isEOFRecordpublic boolean isEOFRecord(byte[] record) Determine if an archive record indicate End of Archive. End of archive is indicated by a record that consists entirely of null bytes.- Parameters:
- record- The record data to check.
- Returns:
- true if the record data is an End of Archive
 
- 
skipRecordSkip over a record on the input stream.- Throws:
- IOException- on error
 
- 
readRecordRead a record from the input stream and return the data.- Returns:
- The record data.
- Throws:
- IOException- on error
 
- 
getCurrentBlockNumpublic int getCurrentBlockNum()Get the current block number, zero based.- Returns:
- The current zero based block number.
 
- 
getCurrentRecordNumpublic int getCurrentRecordNum()Get the current record number, within the current block, zero based. Thus, current offset = (currentBlockNum * recsPerBlk) + currentRecNum.- Returns:
- The current zero based record number.
 
- 
writeRecordWrite an archive record to the archive.- Parameters:
- record- The record data to write to the archive.
- Throws:
- IOException- on error
 
- 
writeRecordWrite an archive record to the archive, where the record may be inside of a larger array buffer. The buffer must be "offset plus record size" long.- Parameters:
- buf- The buffer containing the record data to write.
- offset- The offset of the record data within buf.
- Throws:
- IOException- on error
 
- 
closeClose the TarBuffer. If this is an output buffer, also flush the current block before closing.- Throws:
- IOException- on error
 
 
-