Package 

Class FileBlockDeviceDriver

    • Constructor Detail

      • FileBlockDeviceDriver

        FileBlockDeviceDriver(File file, Integer byteOffset, Integer blockSize)
      • FileBlockDeviceDriver

        FileBlockDeviceDriver(File file, Integer byteOffset)
      • FileBlockDeviceDriver

        FileBlockDeviceDriver(File file)
      • FileBlockDeviceDriver

        FileBlockDeviceDriver(URL url, Integer byteOffset, Integer blockSize)
      • FileBlockDeviceDriver

        FileBlockDeviceDriver(URL url, Integer byteOffset)
      • FileBlockDeviceDriver

        FileBlockDeviceDriver(URL url)
    • Method Detail

      • getBlockSize

         Integer getBlockSize()

        Returns the block size of the block device. Every block device can only read and store bytes in a specific block with a certain size.

        That means that it is only possible to read or write whole blocks!

      • getBlocks

         Long getBlocks()

        The size of the block device, in blocks of blockSize bytes,

      • init

         Unit init()

        Initializes the block device for further use. This method should be called before doing anything else on the block device.

      • read

         Unit read(Long deviceOffset, ByteBuffer buffer)

        Reads from the block device at a certain offset into the given buffer. The amount of bytes to be read are determined by java.nio.ByteBuffer.remaining.

        The deviceOffset can either be the amount of bytes or a logical block addressing using the block size. To get the bytes in the last case you have to multiply the lba with the block size (offset * .getBlockSize).

        Parameters:
        deviceOffset - The offset where the reading should begin.
        buffer - The buffer where the data should be read into.
      • write

         Unit write(Long deviceOffset, ByteBuffer buffer)

        Writes to the block device at a certain offset from the given buffer. The amount of bytes to be written are determined by java.nio.ByteBuffer.remaining.

        The deviceOffset can either be the amount of bytes or a logical block addressing using the block size. To get the bytes in the last case you have to multiply the lba with the block size (offset * .getBlockSize).

        Parameters:
        deviceOffset - The offset where the writing should begin.
        buffer - The buffer with the data to be transferred.