Class BinaryStdIn

Object
  extended by BinaryStdIn

public final class BinaryStdIn
extends Object

Binary standard input. This class provides methods for reading in bits from standard input, either one bit at a time (as a boolean), 8 bits at a time (as a byte or char), 16 bits at a time (as a short), 32 bits at a time (as an int or float), or 64 bits at a time (as a double or long).

All primitive types are assumed to be represented using their standard Java representations, in big-endian (most significant byte first) order.

The client should not intermix calls to BinaryStdIn with calls to StdIn or System.in; otherwise unexpected behavior will result.


Method Summary
static void close()
          Close this input stream and release any associated system resources.
static boolean isEmpty()
          Returns true if standard input is empty.
static void main(String[] args)
          Test client.
static boolean readBoolean()
          Read the next bit of data from standard input and return as a boolean.
static byte readByte()
          Read the next 8 bits from standard input and return as an 8-bit byte.
static char readChar()
          Read the next 8 bits from standard input and return as an 8-bit char.
static char readChar(int r)
          Read the next r bits from standard input and return as an r-bit character.
static double readDouble()
          Read the next 64 bits from standard input and return as a 64-bit double.
static float readFloat()
          Read the next 32 bits from standard input and return as a 32-bit float.
static int readInt()
          Read the next 32 bits from standard input and return as a 32-bit int.
static int readInt(int r)
          Read the next r bits from standard input and return as an r-bit int.
static long readLong()
          Read the next 64 bits from standard input and return as a 64-bit long.
static short readShort()
          Read the next 16 bits from standard input and return as a 16-bit short.
static String readString()
          Read the remaining bytes of data from standard input and return as a string.
 
Methods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

close

public static void close()
Close this input stream and release any associated system resources.


isEmpty

public static boolean isEmpty()
Returns true if standard input is empty.

Returns:
true if and only if standard input is empty

readBoolean

public static boolean readBoolean()
Read the next bit of data from standard input and return as a boolean.

Returns:
the next bit of data from standard input as a boolean
Throws:
RuntimeException - if standard input is empty

readChar

public static char readChar()
Read the next 8 bits from standard input and return as an 8-bit char. Note that char is a 16-bit type; to read the next 16 bits as a char, use readChar(16)

Returns:
the next 8 bits of data from standard input as a char
Throws:
RuntimeException - if there are fewer than 8 bits available on standard input

readChar

public static char readChar(int r)
Read the next r bits from standard input and return as an r-bit character.

Parameters:
r - number of bits to read.
Returns:
the next r bits of data from standard input as a char
Throws:
RuntimeException - if there are fewer than r bits available on standard input
RuntimeException - unless 1 ≤ r ≤ 16

readString

public static String readString()
Read the remaining bytes of data from standard input and return as a string.

Returns:
the remaining bytes of data from standard input as a String
Throws:
RuntimeException - if standard input is empty or if the number of bits available on standard input is not a multiple of 8 (byte-aligned)

readShort

public static short readShort()
Read the next 16 bits from standard input and return as a 16-bit short.

Returns:
the next 16 bits of data from standard input as a short
Throws:
RuntimeException - if there are fewer than 16 bits available on standard input

readInt

public static int readInt()
Read the next 32 bits from standard input and return as a 32-bit int.

Returns:
the next 32 bits of data from standard input as a int
Throws:
RuntimeException - if there are fewer than 32 bits available on standard input

readInt

public static int readInt(int r)
Read the next r bits from standard input and return as an r-bit int.

Parameters:
r - number of bits to read.
Returns:
the next r bits of data from standard input as a int
Throws:
RuntimeException - if there are fewer than r bits available on standard input
RuntimeException - unless 1 ≤ r ≤ 32

readLong

public static long readLong()
Read the next 64 bits from standard input and return as a 64-bit long.

Returns:
the next 64 bits of data from standard input as a long
Throws:
RuntimeException - if there are fewer than 64 bits available on standard input

readDouble

public static double readDouble()
Read the next 64 bits from standard input and return as a 64-bit double.

Returns:
the next 64 bits of data from standard input as a double
Throws:
RuntimeException - if there are fewer than 64 bits available on standard input

readFloat

public static float readFloat()
Read the next 32 bits from standard input and return as a 32-bit float.

Returns:
the next 32 bits of data from standard input as a float
Throws:
RuntimeException - if there are fewer than 32 bits available on standard input

readByte

public static byte readByte()
Read the next 8 bits from standard input and return as an 8-bit byte.

Returns:
the next 8 bits of data from standard input as a byte
Throws:
RuntimeException - if there are fewer than 8 bits available on standard input

main

public static void main(String[] args)
Test client. Reads in a binary input file from standard input and writes it to standard output.