org.codehaus.plexus.archiver.tar
Class TarBuffer
java.lang.Object
org.codehaus.plexus.archiver.tar.TarBuffer
public class TarBuffer
extends java.lang.Object
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.
$Revision: 2436 $ $Date: 2005-09-01 13:20:41 -0400 (Thu, 01 Sep 2005) $
from org.apache.ant.tools.tar.TarBuffer v1.12
TarBuffer(InputStream inStream)
|
TarBuffer(InputStream inStream, int blockSize)
|
TarBuffer(InputStream inStream, int blockSize, int recordSize)
|
TarBuffer(OutputStream outStream)
|
TarBuffer(OutputStream outStream, int blockSize)
|
TarBuffer(OutputStream outStream, int blockSize, int recordSize)
|
void | close() - Close the TarBuffer.
|
private void | flushBlock() - Flush the current data block if it has any data in it.
|
int | getBlockSize() - Get the TAR Buffer's block size.
|
int | getCurrentBlockNum() - Get the current block number, zero based.
|
int | getCurrentRecordNum() - Get the current record number, within the current block, zero based.
|
int | getRecordSize() - Get the TAR Buffer's record size.
|
private void | initialize(int blockSize, int recordSize) - Initialization common to all constructors.
|
boolean | isEOFRecord(byte[] record) - Determine if an archive record indicate End of Archive.
|
private boolean | readBlock()
|
byte[] | readRecord() - Read a record from the input stream and return the data.
|
void | setDebug(boolean debug) - Set the debugging flag for the buffer.
|
void | skipRecord() - Skip over a record on the input stream.
|
private void | writeBlock() - Write a TarBuffer block to the archive.
|
void | writeRecord(byte[] record) - Write an archive record to the archive.
|
void | writeRecord(byte[] buf, int offset) - Write an archive record to the archive, where the record may be
inside of a larger array buffer.
|
DEFAULT_BLKSIZE
public static final int DEFAULT_BLKSIZE
DEFAULT_RCDSIZE
public static final int DEFAULT_RCDSIZE
blockBuffer
private byte[] blockBuffer
blockSize
private int blockSize
currBlkIdx
private int currBlkIdx
currRecIdx
private int currRecIdx
debug
private boolean debug
inStream
private InputStream inStream
outStream
private OutputStream outStream
recordSize
private int recordSize
recsPerBlock
private int recsPerBlock
TarBuffer
public TarBuffer(InputStream inStream)
TarBuffer
public TarBuffer(InputStream inStream,
int blockSize)
TarBuffer
public TarBuffer(InputStream inStream,
int blockSize,
int recordSize)
TarBuffer
public TarBuffer(OutputStream outStream)
TarBuffer
public TarBuffer(OutputStream outStream,
int blockSize)
TarBuffer
public TarBuffer(OutputStream outStream,
int blockSize,
int recordSize)
close
public void close()
throws IOException
Close the TarBuffer. If this is an output buffer, also flush the
current block before closing.
flushBlock
private void flushBlock()
throws IOException
Flush the current data block if it has any data in it.
getBlockSize
public int getBlockSize()
Get the TAR Buffer's block size. Blocks consist of multiple records.
getCurrentBlockNum
public int getCurrentBlockNum()
Get the current block number, zero based.
- The current zero based block number.
getCurrentRecordNum
public int getCurrentRecordNum()
Get the current record number, within the current block, zero based.
Thus, current offset = (currentBlockNum * recsPerBlk) + currentRecNum.
- The current zero based record number.
getRecordSize
public int getRecordSize()
Get the TAR Buffer's record size.
initialize
private void initialize(int blockSize,
int recordSize)
Initialization common to all constructors.
isEOFRecord
public 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.
record
- The record data to check.
readBlock
private boolean readBlock()
throws IOException
- false if End-Of-File, else true
readRecord
public byte[] readRecord()
throws IOException
Read a record from the input stream and return the data.
setDebug
public void setDebug(boolean debug)
Set the debugging flag for the buffer.
debug
- If true, print debugging output.
skipRecord
public void skipRecord()
throws IOException
Skip over a record on the input stream.
writeBlock
private void writeBlock()
throws IOException
Write a TarBuffer block to the archive.
writeRecord
public void writeRecord(byte[] record)
throws IOException
Write an archive record to the archive.
record
- The record data to write to the archive.
writeRecord
public void writeRecord(byte[] buf,
int offset)
throws IOException
Write 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.
buf
- The buffer containing the record data to write.offset
- The offset of the record data within buf.