Package stdlib

Class BinaryOut

java.lang.Object
stdlib.BinaryOut

public final class BinaryOut extends Object
Binary output. This class provides methods for converting primtive type variables (boolean, byte, char, int, long, float, and double) 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 intermixing calls to BinaryOut with calls to Out; otherwise unexpected behavior will result.

  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    private int
     
    private int
     
     
  • Constructor Summary

    Constructors
    Constructor
    Description
    Create a binary output stream from standard output.
    Create a binary output stream from an OutputStream.
    Create a binary output stream from a filename.
    BinaryOut(Socket socket)
    Create a binary output stream from a Socket.
  • Method Summary

    Modifier and Type
    Method
    Description
    private void
     
    void
    Close and flush the binary output stream.
    void
    Flush the binary output stream, padding 0s if number of bits written so far is not a multiple of 8.
    static void
    main(String[] args)
    Test client.
    void
    write(boolean x)
    Write the specified bit to the binary output stream.
    void
    write(byte x)
    Write the 8-bit byte to the binary output stream.
    void
    write(char x)
    Write the 8-bit char to the binary output stream.
    void
    write(char x, int r)
    Write the r-bit char to the binary output stream.
    void
    write(double x)
    Write the 64-bit double to the binary output stream.
    void
    write(float x)
    Write the 32-bit float to the binary output stream.
    void
    write(int x)
    Write the 32-bit int to the binary output stream.
    void
    write(int x, int r)
    Write the r-bit int to the binary output stream.
    void
    write(long x)
    Write the 64-bit long to the binary output stream.
    void
    write(short x)
    Write the 16-bit int to the binary output stream.
    void
    Write the string of 8-bit characters to the binary output stream.
    void
    write(String s, int r)
    Write the String of r-bit characters to the binary output stream.
    private void
    writeBit(boolean bit)
    Write the specified bit to the binary output stream.
    private void
    writeByte(int x)
    Write the 8-bit byte to the binary output stream.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

  • Constructor Details

    • BinaryOut

      public BinaryOut(OutputStream os)
      Create a binary output stream from an OutputStream.
    • BinaryOut

      public BinaryOut()
      Create a binary output stream from standard output.
    • BinaryOut

      public BinaryOut(String s)
      Create a binary output stream from a filename.
    • BinaryOut

      public BinaryOut(Socket socket)
      Create a binary output stream from a Socket.
  • Method Details

    • writeBit

      private void writeBit(boolean bit)
      Write the specified bit to the binary output stream.
    • writeByte

      private void writeByte(int x)
      Write the 8-bit byte to the binary output stream.
    • clearBuffer

      private void clearBuffer()
    • flush

      public void flush()
      Flush the binary output stream, padding 0s if number of bits written so far is not a multiple of 8.
    • close

      public void close()
      Close and flush the binary output stream. Once it is closed, you can no longer write bits.
    • write

      public void write(boolean x)
      Write the specified bit to the binary output stream.
      Parameters:
      x - the boolean to write.
    • write

      public void write(byte x)
      Write the 8-bit byte to the binary output stream.
      Parameters:
      x - the byte to write.
    • write

      public void write(int x)
      Write the 32-bit int to the binary output stream.
      Parameters:
      x - the int to write.
    • write

      public void write(int x, int r)
      Write the r-bit int to the binary output stream.
      Parameters:
      x - the int to write.
      r - the number of relevant bits in the char.
      Throws:
      RuntimeException - if r is not between 1 and 32.
      RuntimeException - if x is not between 0 and 2r - 1.
    • write

      public void write(double x)
      Write the 64-bit double to the binary output stream.
      Parameters:
      x - the double to write.
    • write

      public void write(long x)
      Write the 64-bit long to the binary output stream.
      Parameters:
      x - the long to write.
    • write

      public void write(float x)
      Write the 32-bit float to the binary output stream.
      Parameters:
      x - the float to write.
    • write

      public void write(short x)
      Write the 16-bit int to the binary output stream.
      Parameters:
      x - the short to write.
    • write

      public void write(char x)
      Write the 8-bit char to the binary output stream.
      Parameters:
      x - the char to write.
      Throws:
      RuntimeException - if x is not betwen 0 and 255.
    • write

      public void write(char x, int r)
      Write the r-bit char to the binary output stream.
      Parameters:
      x - the char to write.
      r - the number of relevant bits in the char.
      Throws:
      RuntimeException - if r is not between 1 and 16.
      RuntimeException - if x is not between 0 and 2r - 1.
    • write

      public void write(String s)
      Write the string of 8-bit characters to the binary output stream.
      Parameters:
      s - the String to write.
      Throws:
      RuntimeException - if any character in the string is not between 0 and 255.
    • write

      public void write(String s, int r)
      Write the String of r-bit characters to the binary output stream.
      Parameters:
      s - the String to write.
      r - the number of relevants bits in each character.
      Throws:
      RuntimeException - if r is not between 1 and 16.
      RuntimeException - 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.