class FileOnBlockDevice:
    def __init__(self, path):
        self.__path = path
        self.__dev = BlockDevice(path)

    def exists(self):
        if self.__dev.is_valid():
            return True
        return False

    def create_empty(self):
        self.__dev.format_device()
        self.__dev.write('')

    def copy_from(self, dest_file):
        self.__dev.write_from_file(dest_file)

    def read(self):
        return self.__dev.read()
class FileOnBlockDevice:
    def __init__(self, path):
        self.__path = path
        self.__dev = BlockDevice(path)

    def exists(self):
        if self.__dev.is_valid():
            return True
        return False

    def create_empty(self):
        self.__dev.format_device()
        self.__dev.write('')

    def copy_from(self, dest_file):
        self.__dev.write_from_file(dest_file)

    def read(self):
        return self.__dev.read()