Мне нужно пройти (прямой)ByteBuffer
к нативным функциям, которые будут читать/записывать из/в буфер. После завершения этих операций я хотел бы получить доступ к ByteBuffer
из кода Java, используя обычные функции; в частности, limit()
и position()
должны отражать текущее состояние буфера.
Поскольку JNI будет использовать GetDirectBufferAddress()
для прямого доступа к базовому буферу, я предполагаю, что мне следует вызывать flip ()
/limit()
/position()
после того, как я закончу чтение/запись. Однако я не смог выполнить эту работу. Например, после того как я прочитал пару байтов в буфер из C и соответственно установил его лимит и положение, я не могу запросить эти байты из Java; Идея Java об ограничении буфера и позиции не согласуется с тем, что я сделал в коде C.
Может ли кто-нибудь указать мне на рабочий пример этого? Заранее спасибо.