public function readChar( 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 )
            );
         }
      }

      try
      {
         if ( \feof( $this->fp ) )
         {
            return false;
         }
         return \fgetc( $this->fp );
      }
      catch ( \Throwable $ex )
      {
         throw new FileAccessException(
            $this->file,
            FileAccessException::ACCESS_READ,
            null,
            \E_USER_ERROR,
            $ex
         );
      }

   }