Class BinaryOut
- Object
-
- BinaryOut
-
public final class BinaryOut extends Object
TheBinaryOutdata type provides a basic capability for converting primitive type variables (boolean,byte,char,int,long,float, anddouble) to sequences of bits and writing them to an output stream. The output stream can be standard output, a file, an OutputStream or a Socket. Uses big-endian (most-significant byte first).The client must
flush()the output stream when finished writing bits.The client should not intermix calls to
BinaryOutwith calls toOut; otherwise unexpected behavior will result.- Author:
- Robert Sedgewick, Kevin Wayne
-
-
Constructor Summary
Constructors Constructor Description BinaryOut()Initializes a binary output stream from standard output.BinaryOut(OutputStream os)Initializes a binary output stream from anOutputStream.BinaryOut(String filename)Initializes a binary output stream from a file.BinaryOut(Socket socket)Initializes a binary output stream from a socket.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voidclose()Flushes and closes the binary output stream.voidflush()Flushes the binary output stream, padding 0s if number of bits written so far is not a multiple of 8.static voidmain(String[] args)Test client.voidwrite(boolean x)Writes the specified bit to the binary output stream.voidwrite(byte x)Writes the 8-bit byte to the binary output stream.voidwrite(char x)Writes the 8-bit char to the binary output stream.voidwrite(char x, int r)Writes the r-bit char to the binary output stream.voidwrite(double x)Writes the 64-bit double to the binary output stream.voidwrite(float x)Writes the 32-bit float to the binary output stream.voidwrite(int x)Writes the 32-bit int to the binary output stream.voidwrite(int x, int r)Writes the r-bit int to the binary output stream.voidwrite(long x)Writes the 64-bit long to the binary output stream.voidwrite(short x)Write the 16-bit int to the binary output stream.voidwrite(String s)Writes the string of 8-bit characters to the binary output stream.voidwrite(String s, int r)Writes the string of r-bit characters to the binary output stream.
-
-
-
Constructor Detail
-
BinaryOut
public BinaryOut()
Initializes a binary output stream from standard output.
-
BinaryOut
public BinaryOut(OutputStream os)
Initializes a binary output stream from anOutputStream.- Parameters:
os- theOutputStream
-
BinaryOut
public BinaryOut(String filename)
Initializes a binary output stream from a file.- Parameters:
filename- the name of the file- Throws:
IllegalArgumentException- iffilenameisnullIllegalArgumentException- iffilenameis the empty stringIllegalArgumentException- if cannot write the filefilename
-
BinaryOut
public BinaryOut(Socket socket)
Initializes a binary output stream from a socket.- Parameters:
socket- the socket- Throws:
IllegalArgumentException- iffilenameisnullIllegalArgumentException- if cannot create output stream from socket
-
-
Method Detail
-
flush
public void flush()
Flushes the binary output stream, padding 0s if number of bits written so far is not a multiple of 8.
-
close
public void close()
Flushes and closes the binary output stream. Once it is closed, bits can no longer be written.
-
write
public void write(boolean x)
Writes the specified bit to the binary output stream.- Parameters:
x- thebooleanto write
-
write
public void write(byte x)
Writes the 8-bit byte to the binary output stream.- Parameters:
x- thebyteto write.
-
write
public void write(int x)
Writes the 32-bit int to the binary output stream.- Parameters:
x- theintto write
-
write
public void write(int x, int r)Writes the r-bit int to the binary output stream.- Parameters:
x- theintto writer- the number of relevant bits in the char- Throws:
IllegalArgumentException- unlessris between 1 and 32IllegalArgumentException- unlessxis between 0 and 2r - 1
-
write
public void write(double x)
Writes the 64-bit double to the binary output stream.- Parameters:
x- thedoubleto write
-
write
public void write(long x)
Writes the 64-bit long to the binary output stream.- Parameters:
x- thelongto write
-
write
public void write(float x)
Writes the 32-bit float to the binary output stream.- Parameters:
x- thefloatto write
-
write
public void write(short x)
Write the 16-bit int to the binary output stream.- Parameters:
x- theshortto write.
-
write
public void write(char x)
Writes the 8-bit char to the binary output stream.- Parameters:
x- thecharto write- Throws:
IllegalArgumentException- unlessxis between 0 and 255
-
write
public void write(char x, int r)Writes the r-bit char to the binary output stream.- Parameters:
x- thecharto writer- the number of relevant bits in the char- Throws:
IllegalArgumentException- unlessris between 1 and 16IllegalArgumentException- unlessxis between 0 and 2r - 1
-
write
public void write(String s)
Writes the string of 8-bit characters to the binary output stream.- Parameters:
s- theStringto write- Throws:
IllegalArgumentException- if any character in the string is not between 0 and 255
-
write
public void write(String s, int r)
Writes the string of r-bit characters to the binary output stream.- Parameters:
s- theStringto writer- the number of relevant bits in each character- Throws:
IllegalArgumentException- unless r is between 1 and 16IllegalArgumentException- if any character in the string is not between 0 and 2r - 1
-
main
public static void main(String[] args)
Test client. Read bits from standard input and write to the file specified on command line.- Parameters:
args- the command-line arguments
-
-