code: def read(self, size=None):
      
      if not self._is_open:
        raise IOError('Not opened.')
  
      if self._fsntfs_data_stream:
        return self._fsntfs_data_stream.read(size=size)
      return self._fsntfs_file_entry.read(size=size)
docs: Reads a byte string from the file-like object at the current offset.
  
      The function will read a byte string of the specified size or
      all of the remaining data if no size was specified.
  
      Args:
        size (Optional[int]): number of bytes to read, where None is all
            remaining data.
  
      Returns:
        bytes: data read.
  
      Raises:
        IOError: if the read failed.
        OSError: if the read failed.