FileDocCategorySizeDatePackage
UTF_16BE_Reader.javaAPI DocphoneME MR2 API (J2ME)3401Wed May 02 18:00:30 BST 2007com.sun.cldc.i18n.j2me

UTF_16BE_Reader

public class UTF_16BE_Reader extends com.sun.cldc.i18n.StreamReader
The class encode char[] into byte stream in big-endian format. Each char requires two bytes to encode it. Note: The Unicode standard allows for characters whose representation requires more than 16 bit. Characters whose code points are greater than U+FFFF are called supplementary characters. Since String represents a string in the UTF-16 format in which supplementary characters are represented by surrogate pairs, so a supplementary character uses two positions in a String. Therefore, UTF_16BE_Writer doesn't care about supplementary characters, it treats them as usual characters.

Fields Summary
Constructors Summary
Methods Summary
public intread(char[] cbuf, int off, int len)
Read a block of characters.

param
cbuf output buffer for converted characters read
param
off initial offset into the provided buffer
param
len length of characters in the buffer
return
the number of converted characters
exception
IOException is thrown if the input stream could not be read for the raw unconverted character

	int count = 0;
        int currentChar = 0;
	int b1, b2;  
        
        while (count < len) {
	    if ((b1 = in.read()) == -1) {
	        break;
	    }
	    
	    if ((b2 = in.read()) == -1) {
	        break;
	    }
	    
	    currentChar = (b1 << 8) & 0xff00;
	    currentChar |= b2 & 0xff;
	    	
            cbuf[off + count] = (char)currentChar;
            count++;
        }

        return count;
    
public intsizeOf(byte[] array, int offset, int length)
Get the size in chars of an array of bytes. Note: This method is only used by our internal Helper class in the method byteToCharArray to know how much to allocate before using a reader. If we encounter bad encoding we should return a count that includes that character so the reader will throw an IOException

param
array Source buffer
param
offset Offset at which to start counting characters
param
length number of bytes to use for counting
return
number of characters that would be converted

        return length/2;