Package stdlib
Class BinaryIn
java.lang.Object
stdlib.BinaryIn
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.
-
Field Summary
Modifier and TypeFieldDescriptionprivate int
private static final int
private BufferedInputStream
private int
-
Constructor Summary
ConstructorDescriptionBinaryIn()
Create a binary input stream from standard input.BinaryIn
(InputStream is) Create a binary input stream from an InputStream.Create a binary input stream from a filename or URL name.Create a binary input stream from a socket.Create a binary input stream from a URL. -
Method Summary
Modifier and TypeMethodDescriptionboolean
exists()
Does the binary input stream exist?private void
boolean
isEmpty()
Returns true if the binary input stream is empty.static void
Test client.boolean
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
Read the next 64 bits from the binary input stream and return as a 64-bit double.float
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
Read the next 16 bits from the binary input stream and return as a 16-bit short.Read the remaining bytes of data from the binary input stream and return as a string.
-
Field Details
-
EOF
- See Also:
-
in
-
buffer
-
N
-
-
Constructor Details
-
BinaryIn
public BinaryIn()Create a binary input stream from standard input. -
BinaryIn
Create a binary input stream from an InputStream. -
BinaryIn
Create a binary input stream from a socket. -
BinaryIn
Create a binary input stream from a URL. -
BinaryIn
Create a binary input stream from a filename or URL name.
-
-
Method Details
-
fillBuffer
-
exists
Does the binary input stream exist? -
isEmpty
Returns true if the binary input stream is empty.- Returns:
- true if and only if the binary input stream is empty
-
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
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
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
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
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
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
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
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
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
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
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
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).
-