(BitOutputStream) Implement a class named BitOutputStream, as shown
in Figure 19.20, for writing bits to an output stream. The writeBit(char
bit) method stores the bit in a byte variable. When you create a
BitOutputStream, the byte is empty. After invoking writeBit(‘1’), the
byte becomes 00000001. After invoking writeBit(“0101”), the byte
becomes 00010101. The first three bits are not filled yet. When a byte is full, it
is sent to the output stream. Now the byte is reset to empty. You must close the
stream by invoking the close() method. If the byte is not empty and not full,
the close() method first fills the zeros to make a full 8 bits in the byte, and
then output the byte and close the stream. For a hint, see Exercise 4.46. Write a
test program that sends the bits 010000100100001001101 to the file named
Exercise19_17.dat.