Class BinaryIn

Object
  extended by BinaryIn

public final class BinaryIn
extends Object

Binary input. This class provides methods for reading in bits from a binary input stream, 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).

The binary input stream can be from standard input, a filename, a URL name, a Socket, or an InputStream.

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 BinaryIn with calls to In; otherwise unexpected behavior will result.


Constructor Summary
BinaryIn()
          Create a binary input stream from standard input.
BinaryIn(java.io.InputStream is)
          Create a binary input stream from an InputStream.
BinaryIn(java.net.Socket socket)
          Create a binary input stream from a socket.
BinaryIn(String s)
          Create a binary input stream from a filename or URL name.
BinaryIn(java.net.URL url)
          Create a binary input stream from a URL.
 
Method Summary
 boolean exists()
          Does the binary input stream exist?
 boolean isEmpty()
          Returns true if the binary input stream is empty.
static void main(String[] args)
          Test client.
 boolean readBoolean()
          Read the next bit of data from the binary input stream and return as a boolean.
 byte readByte()
          Read the next 8 bits from the binary input stream and return as an 8-bit byte.
 char readChar()
          Read the next 8 bits from the binary input stream and return as an 8-bit char.
 char readChar(int r)
          Read the next r bits from the binary input stream and return as an r-bit character.
 double readDouble()
          Read the next 64 bits from the binary input stream and return as a 64-bit double.
 float readFloat()
          Read the next 32 bits from standard input and return as a 32-bit float.
 int readInt()
          Read the next 32 bits from the binary input stream and return as a 32-bit int.
 int readInt(int r)
          Read the next r bits from the binary input stream return as an r-bit int.
 long readLong()
          Read the next 64 bits from the binary input stream and return as a 64-bit long.
 short readShort()
          Read the next 16 bits from the binary input stream and return as a 16-bit short.
 String readString()
          Read the remaining bytes of data from the binary input stream and return as a string.
 
Methods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

BinaryIn

public BinaryIn()
Create a binary input stream from standard input.


BinaryIn

public BinaryIn(java.io.InputStream is)
Create a binary input stream from an InputStream.


BinaryIn

public BinaryIn(java.net.Socket socket)
Create a binary input stream from a socket.


BinaryIn

public BinaryIn(java.net.URL url)
Create a binary input stream from a URL.


BinaryIn

public BinaryIn(String s)
Create a binary input stream from a filename or URL name.

Method Detail

exists

public boolean exists()
Does the binary input stream exist?


isEmpty

public boolean isEmpty()
Returns true if the binary input stream is empty.

Returns:
true if and only if the binary input stream is empty

readBoolean

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

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

readChar

public char readChar()
Read the next 8 bits from the binary input stream and return as an 8-bit char.

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

readChar

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

Parameters:
r - number of bits to read.
Returns:
the next r bits of data from the binary input streamt as a char
Throws:
RuntimeException - if there are fewer than r bits available

readString

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

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

readShort

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

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

readInt

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

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

readInt

public int readInt(int r)
Read the next r bits from the binary input stream return as an r-bit int.

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

readLong

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

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

readDouble

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

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

readFloat

public 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 byte readByte()
Read the next 8 bits from the binary input stream and return as an 8-bit byte.

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

main

public static void main(String[] args)
Test client. Reads in the name of a file or url (first command-line argument) and writes it to a file (second command-line argument).