@Override
   public int read() throws IOException
   {
      int result;

      if (pushBackChar != -1)
      {
         result = pushBackChar;
         pushBackChar = -1;
      }
      else
      {
         result = stream.read();
      }

      return result;
   }