public final class UnicodeDecompressor extends Object
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
UnicodeCompressor
Modifier and Type | Field and Description |
---|---|
static int |
ARMENIANINDEX |
static int |
COMPRESSIONOFFSET |
static int |
GREEKINDEX |
static int |
HALFWIDTHKATAKANAINDEX |
static int |
HIRAGANAINDEX |
static int |
INVALIDCHAR |
static int |
INVALIDWINDOW |
static int |
IPAEXTENSIONINDEX |
static int |
KATAKANAINDEX |
static int |
LATININDEX |
static int |
MAXINDEX |
static int |
NUMSTATICWINDOWS |
static int |
NUMWINDOWS |
static int |
RESERVEDINDEX |
static int |
SCHANGE0 |
static int |
SCHANGE1 |
static int |
SCHANGE2 |
static int |
SCHANGE3 |
static int |
SCHANGE4 |
static int |
SCHANGE5 |
static int |
SCHANGE6 |
static int |
SCHANGE7 |
static int |
SCHANGEU |
static int |
SDEFINE0 |
static int |
SDEFINE1 |
static int |
SDEFINE2 |
static int |
SDEFINE3 |
static int |
SDEFINE4 |
static int |
SDEFINE5 |
static int |
SDEFINE6 |
static int |
SDEFINE7 |
static int |
SDEFINEX |
static int |
SINGLEBYTEMODE |
static int[] |
sOffsets
Static compression window offsets
|
static int[] |
sOffsetTable
For window offset mapping
|
static int |
SQUOTE0 |
static int |
SQUOTE1 |
static int |
SQUOTE2 |
static int |
SQUOTE3 |
static int |
SQUOTE4 |
static int |
SQUOTE5 |
static int |
SQUOTE6 |
static int |
SQUOTE7 |
static int |
SQUOTEU |
static int |
SRESERVED |
static int |
UCHANGE0 |
static int |
UCHANGE1 |
static int |
UCHANGE2 |
static int |
UCHANGE3 |
static int |
UCHANGE4 |
static int |
UCHANGE5 |
static int |
UCHANGE6 |
static int |
UCHANGE7 |
static int |
UDEFINE0 |
static int |
UDEFINE1 |
static int |
UDEFINE2 |
static int |
UDEFINE3 |
static int |
UDEFINE4 |
static int |
UDEFINE5 |
static int |
UDEFINE6 |
static int |
UDEFINE7 |
static int |
UDEFINEX |
static int |
UNICODEMODE |
static int |
UQUOTEU |
static int |
URESERVED |
Constructor and Description |
---|
UnicodeDecompressor()
Create a UnicodeDecompressor.
|
Modifier and Type | Method and Description |
---|---|
static String |
decompress(byte[] buffer)
Decompress a byte array into a String.
|
static char[] |
decompress(byte[] buffer,
int start,
int limit)
Decompress a byte array into a Unicode character array.
|
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.
|
void |
reset()
Reset the decompressor to its initial state.
|
public static final int COMPRESSIONOFFSET
public static final int NUMWINDOWS
public static final int NUMSTATICWINDOWS
public static final int INVALIDWINDOW
public static final int INVALIDCHAR
public static final int SINGLEBYTEMODE
public static final int UNICODEMODE
public static final int MAXINDEX
public static final int RESERVEDINDEX
public static final int LATININDEX
public static final int IPAEXTENSIONINDEX
public static final int GREEKINDEX
public static final int ARMENIANINDEX
public static final int HIRAGANAINDEX
public static final int KATAKANAINDEX
public static final int HALFWIDTHKATAKANAINDEX
public static final int SDEFINEX
public static final int SRESERVED
public static final int SQUOTEU
public static final int SCHANGEU
public static final int SQUOTE0
public static final int SQUOTE1
public static final int SQUOTE2
public static final int SQUOTE3
public static final int SQUOTE4
public static final int SQUOTE5
public static final int SQUOTE6
public static final int SQUOTE7
public static final int SCHANGE0
public static final int SCHANGE1
public static final int SCHANGE2
public static final int SCHANGE3
public static final int SCHANGE4
public static final int SCHANGE5
public static final int SCHANGE6
public static final int SCHANGE7
public static final int SDEFINE0
public static final int SDEFINE1
public static final int SDEFINE2
public static final int SDEFINE3
public static final int SDEFINE4
public static final int SDEFINE5
public static final int SDEFINE6
public static final int SDEFINE7
public static final int UCHANGE0
public static final int UCHANGE1
public static final int UCHANGE2
public static final int UCHANGE3
public static final int UCHANGE4
public static final int UCHANGE5
public static final int UCHANGE6
public static final int UCHANGE7
public static final int UDEFINE0
public static final int UDEFINE1
public static final int UDEFINE2
public static final int UDEFINE3
public static final int UDEFINE4
public static final int UDEFINE5
public static final int UDEFINE6
public static final int UDEFINE7
public static final int UQUOTEU
public static final int UDEFINEX
public static final int URESERVED
public static final int[] sOffsetTable
public static final int[] sOffsets
public UnicodeDecompressor()
reset()
public static String decompress(byte[] buffer)
buffer
- The byte array to decompress.decompress(byte [], int, int)
public static char[] decompress(byte[] buffer, int start, int limit)
buffer
- The byte array to decompress.start
- The start of the byte run to decompress.limit
- The limit of the byte run to decompress.decompress(byte [])
public int decompress(byte[] byteBuffer, int byteBufferStart, int byteBufferLimit, int[] bytesRead, char[] charBuffer, int charBufferStart, int charBufferLimit)
byteBuffer
- The byte buffer to decompress.byteBufferStart
- The start of the byte run to decompress.byteBufferLimit
- The limit of the byte run to decompress.bytesRead
- A one-element array. If not null, on return
the number of bytes read from byteBuffer.charBuffer
- A buffer to receive the decompressed data.
This buffer must be at minimum two characters in size.charBufferStart
- The starting offset to which to write
decompressed data.charBufferLimit
- The limiting offset for writing
decompressed data.public void reset()
Copyright © 2016 Unicode, Inc. and others.