Java FileChannel поддерживает запись из массива буферов в канал в записи записи с помощью int write (ByteBuffer [] src).Почему Java Gathering Write with Offset не существует?
Он, однако, не поддерживает эквивалент метода записи со смещением write (ByteBuffer src, длинная позиция). Кажется, что нет возможности делать запись в заданное смещение без блокировки канала, изменения положения, записи в эту позицию, а затем разблокировки канала.
Похоже, что java использует системный вызов writev для выполнения записи записи. Команда pwritev, по-видимому, выполняет именно то, что она хотела бы и ожидала от нее.
Есть ли веская причина, почему нет метода записи со смещением? Существуют ли библиотеки, которые это реализуют?
Любопытный: Зачем вам это нужно? –
Хотелось бы исключить копии буфера для производительности, используя сбор записей, но я пишу в смещение внутри файла, и блокировка канала при каждой записи может быть неприемлемой. – tvoss