Package stdlib

Class BinaryStdIn

java.lang.Object
stdlib.BinaryStdIn

public final class BinaryStdIn extends Object
This class provides methods for reading in bits from standard input, 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).

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 BinaryStdIn with calls to StdIn or System.in; otherwise unexpected behavior will result.

Author:
Robert Sedgewick, Kevin Wayne
  • Method Summary

    Modifier and Type
    Method
    Description
    static void
    Close this input stream and release any associated system resources.
    static boolean
    Returns true if standard input is empty.
    static void
    main(String[] args)
    Test client.
    static boolean
    Reads the next bit of data from standard input and return as a boolean.
    static byte
    Reads the next 8 bits from standard input and return as an 8-bit byte.
    static char
    Reads the next 8 bits from standard input and return as an 8-bit char.
    static char
    readChar(int r)
    Reads the next r bits from standard input and return as an r-bit character.
    static double
    Reads the next 64 bits from standard input and return as a 64-bit double.
    static float
    Reads the next 32 bits from standard input and return as a 32-bit float.
    static int
    Reads the next 32 bits from standard input and return as a 32-bit int.
    static int
    readInt(int r)
    Reads the next r bits from standard input and return as an r-bit int.
    static long
    Reads the next 64 bits from standard input and return as a 64-bit long.
    static short
    Reads the next 16 bits from standard input and return as a 16-bit short.
    static String
    Reads the remaining bytes of data from standard input and return as a string.

    Methods inherited from class java.lang.Object

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

    • close

      public static void close()
      Close this input stream and release any associated system resources.
    • isEmpty

      public static boolean isEmpty()
      Returns true if standard input is empty.
      Returns:
      true if and only if standard input is empty
    • readBoolean

      public static boolean readBoolean()
      Reads the next bit of data from standard input and return as a boolean.
      Returns:
      the next bit of data from standard input as a boolean
      Throws:
      NoSuchElementException - if standard input is empty
    • readChar

      public static char readChar()
      Reads the next 8 bits from standard input and return as an 8-bit char. Note that char is a 16-bit type; to read the next 16 bits as a char, use readChar(16).
      Returns:
      the next 8 bits of data from standard input as a char
      Throws:
      NoSuchElementException - if there are fewer than 8 bits available on standard input
    • readChar

      public static char readChar(int r)
      Reads the next r bits from standard input and return as an r-bit character.
      Parameters:
      r - number of bits to read.
      Returns:
      the next r bits of data from standard input as a char
      Throws:
      NoSuchElementException - if there are fewer than r bits available on standard input
      IllegalArgumentException - unless 1 <= r <= 16
    • readString

      public static String readString()
      Reads the remaining bytes of data from standard input and return as a string.
      Returns:
      the remaining bytes of data from standard input as a String
      Throws:
      NoSuchElementException - if standard input is empty or if the number of bits available on standard input is not a multiple of 8 (byte-aligned)
    • readShort

      public static short readShort()
      Reads the next 16 bits from standard input and return as a 16-bit short.
      Returns:
      the next 16 bits of data from standard input as a short
      Throws:
      NoSuchElementException - if there are fewer than 16 bits available on standard input
    • readInt

      public static int readInt()
      Reads the next 32 bits from standard input and return as a 32-bit int.
      Returns:
      the next 32 bits of data from standard input as a int
      Throws:
      NoSuchElementException - if there are fewer than 32 bits available on standard input
    • readInt

      public static int readInt(int r)
      Reads the next r bits from standard input and return as an r-bit int.
      Parameters:
      r - number of bits to read.
      Returns:
      the next r bits of data from standard input as a int
      Throws:
      NoSuchElementException - if there are fewer than r bits available on standard input
      IllegalArgumentException - unless 1 <= r <= 32
    • readLong

      public static long readLong()
      Reads the next 64 bits from standard input and return as a 64-bit long.
      Returns:
      the next 64 bits of data from standard input as a long
      Throws:
      NoSuchElementException - if there are fewer than 64 bits available on standard input
    • readDouble

      public static double readDouble()
      Reads the next 64 bits from standard input and return as a 64-bit double.
      Returns:
      the next 64 bits of data from standard input as a double
      Throws:
      NoSuchElementException - if there are fewer than 64 bits available on standard input
    • readFloat

      public static float readFloat()
      Reads 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:
      NoSuchElementException - if there are fewer than 32 bits available on standard input
    • readByte

      public static byte readByte()
      Reads the next 8 bits from standard input and return as an 8-bit byte.
      Returns:
      the next 8 bits of data from standard input as a byte
      Throws:
      NoSuchElementException - if there are fewer than 8 bits available on standard input
    • main

      public static void main(String[] args)
      Test client. Reads in a binary input file from standard input and writes it to standard output.
      Parameters:
      args - the command-line arguments