| java.lang.Object com.ibm.icu.text.UnicodeDecompressor
UnicodeDecompressor | final public class UnicodeDecompressor implements SCSU(Code) | | A decompression engine implementing the Standard Compression Scheme
for Unicode (SCSU) as outlined in Unicode Technical
Report #6.
USAGE
The static methods on UnicodeDecompressor may be used in a
straightforward manner to decompress simple strings:
byte [] compressed = ... ; // get compressed bytes from somewhere
String result = UnicodeDecompressor.decompress(compressed);
The static methods have a fairly large memory footprint.
For finer-grained control over memory usage,
UnicodeDecompressor offers more powerful APIs allowing
iterative decompression:
// Decompress an array "bytes" of length "len" using a buffer of 512 chars
// to the Writer "out"
UnicodeDecompressor myDecompressor = new UnicodeDecompressor();
final static int BUFSIZE = 512;
char [] charBuffer = new char [ BUFSIZE ];
int charsWritten = 0;
int [] bytesRead = new int [1];
int totalBytesDecompressed = 0;
int totalCharsWritten = 0;
do {
// do the decompression
charsWritten = myDecompressor.decompress(bytes, totalBytesDecompressed,
len, bytesRead,
charBuffer, 0, BUFSIZE);
// do something with the current set of chars
out.write(charBuffer, 0, charsWritten);
// update the no. of bytes decompressed
totalBytesDecompressed += bytesRead[0];
// update the no. of chars written
totalCharsWritten += charsWritten;
} while(totalBytesDecompressed < len);
myDecompressor.reset(); // reuse decompressor
Decompression is performed according to the standard set forth in
Unicode Technical
Report #6
See Also: UnicodeCompressor author: Stephen F. Booth |
Method Summary | |
public static String | decompress(byte[] buffer) Decompress a byte array into a String.
Parameters: buffer - The byte array to decompress. | public static char[] | decompress(byte[] buffer, int start, int limit) Decompress a byte array into a Unicode character array.
Parameters: buffer - The byte array to decompress. Parameters: start - The start of the byte run to decompress. Parameters: limit - The limit of the byte run to decompress. | public int | decompress(byte[] byteBuffer, int byteBufferStart, int byteBufferLimit, int[] bytesRead, char[] charBuffer, int charBufferStart, int charBufferLimit) Decompress a byte array into a Unicode character array.
This function will either completely fill the output buffer,
or consume the entire input. | public void | reset() Reset the decompressor to its initial state. |
UnicodeDecompressor | public UnicodeDecompressor()(Code) | | Create a UnicodeDecompressor.
Sets all windows to their default values.
See Also: UnicodeDecompressor.reset |
decompress | public static char[] decompress(byte[] buffer, int start, int limit)(Code) | | Decompress a byte array into a Unicode character array.
Parameters: buffer - The byte array to decompress. Parameters: start - The start of the byte run to decompress. Parameters: limit - The limit of the byte run to decompress. A character array containing the decompressed bytes. See Also: UnicodeDecompressor.decompress(byte[]) |
decompress | public int decompress(byte[] byteBuffer, int byteBufferStart, int byteBufferLimit, int[] bytesRead, char[] charBuffer, int charBufferStart, int charBufferLimit)(Code) | | Decompress a byte array into a Unicode character array.
This function will either completely fill the output buffer,
or consume the entire input.
Parameters: byteBuffer - The byte buffer to decompress. Parameters: byteBufferStart - The start of the byte run to decompress. Parameters: byteBufferLimit - The limit of the byte run to decompress. Parameters: bytesRead - A one-element array. If not null, on returnthe number of bytes read from byteBuffer. Parameters: charBuffer - A buffer to receive the decompressed data. This buffer must be at minimum two characters in size. Parameters: charBufferStart - The starting offset to which to write decompressed data. Parameters: charBufferLimit - The limiting offset for writing decompressed data. The number of Unicode characters written to charBuffer. |
reset | public void reset()(Code) | | Reset the decompressor to its initial state.
|
|
|