/* * * * Copyright 1990-2009 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License version * 2 only, as published by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License version 2 for more details (a copy is * included at /legal/license.txt). * * You should have received a copy of the GNU General Public License * version 2 along with this work; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA * 02110-1301 USA * * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa * Clara, CA 95054 or visit www.sun.com if you need additional * information or have any questions. */ package com.sun.cldc.i18n.j2me; import java.io.Reader; import java.io.InputStream; import java.io.UnsupportedEncodingException; /** Reader for Big Endian UTF-16 encoded input streams. */ public class UTF_16BE_Reader extends UTF_16_Reader { /** Constructs a UTF-16BE reader. */ public UTF_16BE_Reader() { super(); bytesForBOM = 0; } /** * Open the reader * @param in the input stream to be read * @param enc identifies the encoding to be used * @return a reader for the given input stream and encoding * @throws UnsupportedEncodingException */ public Reader open(InputStream in, String enc) throws UnsupportedEncodingException { super.open(in, enc); byteOrder = BIG_ENDIAN; // AFTER the constructor return this; } /* * 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 */ public int sizeOf(byte[] array, int offset, int length) { return length/BYTES_PER_CHAR; } }