Package edu.princeton.cs.algs4
Class BinaryIn
 Object

 edu.princeton.cs.algs4.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 aboolean
), 8 bits at a time (as abyte
orchar
), 16 bits at a time (as ashort
), 32 bits at a time (as anint
orfloat
), or 64 bits at a time (as adouble
orlong
).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 bigendian (most significant byte first) order.
The client should not intermix calls to
BinaryIn
with calls toIn
; otherwise unexpected behavior will result. Author:
 Robert Sedgewick, Kevin Wayne


Constructor Summary
Constructors Constructor Description BinaryIn()
Initializes a binary input stream from standard input.BinaryIn(InputStream is)
Initializes a binary input stream from anInputStream
.BinaryIn(String name)
Initializes a binary input stream from a filename or URL name.BinaryIn(Socket socket)
Initializes a binary input stream from a socket.BinaryIn(URL url)
Initializes a binary input stream from a URL.

Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
exists()
Returns true if this binary input stream exists.boolean
isEmpty()
Returns true if this binary input stream is empty.static void
main(String[] args)
Unit tests theBinaryIn
data type.boolean
readBoolean()
Reads the next bit of data from this binary input stream and return as a boolean.byte
readByte()
Reads the next 8 bits from this binary input stream and return as an 8bit byte.char
readChar()
Reads the next 8 bits from this binary input stream and return as an 8bit char.char
readChar(int r)
Reads the next r bits from this binary input stream and return as an rbit character.double
readDouble()
Reads the next 64 bits from this binary input stream and return as a 64bit double.float
readFloat()
Reads the next 32 bits from this binary input stream and return as a 32bit float.int
readInt()
Reads the next 32 bits from this binary input stream and return as a 32bit int.int
readInt(int r)
Reads the next r bits from this binary input stream return as an rbit int.long
readLong()
Reads the next 64 bits from this binary input stream and return as a 64bit long.short
readShort()
Reads the next 16 bits from this binary input stream and return as a 16bit short.String
readString()
Reads the remaining bytes of data from this binary input stream and return as a string.



Constructor Detail

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

BinaryIn
public BinaryIn(InputStream is)
Initializes a binary input stream from anInputStream
. Parameters:
is
 theInputStream
object

BinaryIn
public BinaryIn(Socket socket)
Initializes a binary input stream from a socket. Parameters:
socket
 the socket

BinaryIn
public BinaryIn(URL url)
Initializes a binary input stream from a URL. Parameters:
url
 the URL

BinaryIn
public BinaryIn(String name)
Initializes a binary input stream from a filename or URL name. Parameters:
name
 the name of the file or URL


Method Detail

exists
public boolean exists()
Returns true if this binary input stream exists. Returns:
true
if this binary input stream exists;false
otherwise

isEmpty
public boolean isEmpty()
Returns true if this binary input stream is empty. Returns:
true
if this binary input stream is empty;false
otherwise

readBoolean
public boolean readBoolean()
Reads the next bit of data from this binary input stream and return as a boolean. Returns:
 the next bit of data from this binary input stream as a
boolean
 Throws:
NoSuchElementException
 if this binary input stream is empty

readChar
public char readChar()
Reads the next 8 bits from this binary input stream and return as an 8bit char. Returns:
 the next 8 bits of data from this binary input stream as a
char
 Throws:
NoSuchElementException
 if there are fewer than 8 bits available

readChar
public char readChar(int r)
Reads the next r bits from this binary input stream and return as an rbit character. Parameters:
r
 number of bits to read Returns:
 the next
r
bits of data from this binary input stream as achar
 Throws:
NoSuchElementException
 if there are fewer thanr
bits availableIllegalArgumentException
 unless1 <= r <= 16

readString
public String readString()
Reads the remaining bytes of data from this binary input stream and return as a string. Returns:
 the remaining bytes of data from this binary input stream as a
String
 Throws:
NoSuchElementException
 if this binary input stream is empty or if the number of bits available is not a multiple of 8 (bytealigned)

readShort
public short readShort()
Reads the next 16 bits from this binary input stream and return as a 16bit short. Returns:
 the next 16 bits of data from this binary input stream as a
short
 Throws:
NoSuchElementException
 if there are fewer than 16 bits available

readInt
public int readInt()
Reads the next 32 bits from this binary input stream and return as a 32bit int. Returns:
 the next 32 bits of data from this binary input stream as a
int
 Throws:
NoSuchElementException
 if there are fewer than 32 bits available

readInt
public int readInt(int r)
Reads the next r bits from this binary input stream return as an rbit int. Parameters:
r
 number of bits to read Returns:
 the next
r
bits of data from this binary input stream as aint
 Throws:
NoSuchElementException
 if there are fewer than r bits availableIllegalArgumentException
 unless1 <= r <= 32

readLong
public long readLong()
Reads the next 64 bits from this binary input stream and return as a 64bit long. Returns:
 the next 64 bits of data from this binary input stream as a
long
 Throws:
NoSuchElementException
 if there are fewer than 64 bits available

readDouble
public double readDouble()
Reads the next 64 bits from this binary input stream and return as a 64bit double. Returns:
 the next 64 bits of data from this binary input stream as a
double
 Throws:
NoSuchElementException
 if there are fewer than 64 bits available

readFloat
public float readFloat()
Reads the next 32 bits from this binary input stream and return as a 32bit float. Returns:
 the next 32 bits of data from this binary input stream as a
float
 Throws:
NoSuchElementException
 if there are fewer than 32 bits available

readByte
public byte readByte()
Reads the next 8 bits from this binary input stream and return as an 8bit byte. Returns:
 the next 8 bits of data from this binary input stream as a
byte
 Throws:
NoSuchElementException
 if there are fewer than 8 bits available

main
public static void main(String[] args)
Unit tests theBinaryIn
data type. Reads the name of a file or URL (first commandline argument) and writes it to a file (second commandline argument). Parameters:
args
 the commandline arguments

