public function readToEnd( bool $getLines = false, bool $removeNewlines = true, bool $fast = false )
   {

      if ( ! $fast )
      {
         // No fast (insecure) access = do the required checks
         if ( ! $this->isOpen() )
         {
            return false;
         }
         if ( ! $this->hasReadAccess() )
         {
            throw FileAccessException::Read(
               $this->file,
               \sprintf( 'Current mode of opened file is "%s" and not read!', $this->access )
            );
         }
      }

      $result = '';
      if ( $getLines )
      {
         $result = array();
      }
      while ( false !== ( $line = $this->readLine( $removeNewlines && $getLines, true ) ) )
      {
         if ( $getLines )
         {
            $result[] = $line;
         }
         else
         {
            $result .= $line;
         }
      }

      return $result;

   }