Class NufxLzw2InputStream
java.lang.Object
java.io.InputStream
org.applecommander.shrinkit.io.NufxLzw2InputStream
- All Implemented Interfaces:
Closeable, AutoCloseable
The NufxLzw2InputStream reads a data fork or
resource fork written in the NuFX LZW/2 format.
The layout of the LZW/2 data is as follows:
-
"Fork" Header:
Offset Size Description +0 Byte Low-level volume number used to format 5.25" disks. +1 Byte RLE character used to decode this thread. -
Each subsequent 4K chunk of data:
Offset Size Description +0 Word Bits 0-12: Length after RLE compression.
Bit 15: LZW flag (set to 1 if LZW used).+2 Word If LZW flag = 1, total bytes in chunk.
Else (flag = 0) start of data.
The LZW/2 dictionary is only cleared when the table becomes full and is indicated
in the input stream by 0x100. It is also cleared whenever a chunk that is not
LZW encoded is encountered.
-
Constructor Summary
ConstructorsConstructorDescriptionNufxLzw2InputStream(LittleEndianByteInputStream dataStream) Create the LZW/2 input stream. -
Method Summary
Modifier and TypeMethodDescriptionlongintintintread()Read the next byte in the decompressed data stream.voidsetRleCharacter(int rleCharacter) voidsetVolumeNumber(int volumeNumber) Methods inherited from class InputStream
available, close, mark, markSupported, nullInputStream, read, read, readAllBytes, readNBytes, readNBytes, reset, skip, skipNBytes, transferTo
-
Constructor Details
-
NufxLzw2InputStream
Create the LZW/2 input stream.
-
-
Method Details
-
read
Read the next byte in the decompressed data stream.- Specified by:
readin classInputStream- Throws:
IOException
-
getVolumeNumber
public int getVolumeNumber() -
setVolumeNumber
public void setVolumeNumber(int volumeNumber) -
getRleCharacter
public int getRleCharacter() -
setRleCharacter
public void setRleCharacter(int rleCharacter) -
getDataCrc
public long getDataCrc()
-