1 /* Copyright (C) 2003 Vladimir Roubtsov. All rights reserved. 2 * 3 * This program and the accompanying materials are made available under 4 * the terms of the Common Public License v1.0 which accompanies this distribution, 5 * and is available at http://www.eclipse.org/legal/cpl-v10.html 6 * 7 * $Id: UDataInputStream.java,v 1.1.1.1.2.1 2004/07/10 03:34:53 vlad_r Exp $ 8 */ 9 package com.vladium.jcd.lib; 10 11 import java.io.DataInputStream; 12 import java.io.IOException; 13 import java.io.InputStream; 14 15 // ---------------------------------------------------------------------------- 16 /** 17 * A trivial extension to java.io.DataInputStream to provide methods for 18 * reading unsigned 16- and 32-bit integers with simple mnemonics. It uses 19 * correspondingly wider native types to preserve the full range of the unsigned 20 * types. 21 * 22 * @author (C) 2001, Vlad Roubtsov 23 */ 24 public 25 final class UDataInputStream extends DataInputStream 26 { 27 // public: ................................................................ 28 29 UDataInputStream(final InputStream _in)30 public UDataInputStream (final InputStream _in) 31 { 32 super (_in); 33 } 34 35 readU2()36 public final int readU2 () throws IOException 37 { 38 final short value = readShort (); 39 40 return ((int) value) & 0xFFFF; // widening cast sign-extends 41 } 42 43 readU4()44 public final long readU4 () throws IOException 45 { 46 final int value = readInt (); 47 48 return ((long) value) & 0xFFFFFFFFL; // widening cast sign-extends 49 } 50 51 // protected: ............................................................. 52 53 // package: ............................................................... 54 55 // private: ............................................................... 56 57 } // end of class 58 // ---------------------------------------------------------------------------- 59