Dump all storage data to a file. The file_ argument can be a
        file object or a string that represents a filename. If called
        with a file object, it should be opened in binary mode, and
        the caller is responsible for closing the file.

        The method should only be called after the storage device has
        been closed to ensure that the locked flag has been set to
        False.

def tofile(self, file_):
        """
        Dump all storage data to a file. The file_ argument can be a
        file object or a string that represents a filename. If called
        with a file object, it should be opened in binary mode, and
        the caller is responsible for closing the file.

        The method should only be called after the storage device has
        been closed to ensure that the locked flag has been set to
        False.
        """
        close_file = False
        if not hasattr(file_, 'write'):
            file_ = open(file_, 'wb')
            close_file = True
        file_.write(self._f)
        if close_file:
            file_.close()